首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在NGINX配置中创建动态根路径?

如何在NGINX配置中创建动态根路径?
EN

Server Fault用户
提问于 2019-04-09 07:26:28
回答 1查看 3.9K关注 0票数 0

在我的部署期间,我创建工件,它们是带有静态文件的文件夹- html、css、js。它们被复制到/usr/share/nginx/html/${SHORT_COMMIT_HASH}文件夹中的服务器上。

例如,该网站可参考。

代码语言:javascript
复制
site.com/${SHORT_COMMIT_HASH} 

请求如下所示:

代码语言:javascript
复制
site.com/9f9b348b/some_url_1/1
site.com/9f9b348b/some_url_2/2

在输入任何启动site.com/${SHORT_COMMIT_HASH}的链接时,需要显示/usr/share/nginx/html/${SHORT_COMMIT_HASH}目录中的index.html }。

我为它提供了nginx配置:

代码语言:javascript
复制
server {
    listen       80;
    server_name  localhost;

    location / {
      root /usr/share/nginx/html;
    }

    location ~ ^/([a-zA-Z0-9]*)/ {
      root /usr/share/nginx/html;
      try_files $uri $uri/ /$1/index.html;
    }
}

但我有麻烦了。css,js文件nginx不是在site.com/${SHORT_COMMIT_HASH}中,而是在site.com/

如何更改位置/位置的根,对于每个请求,我们都是自己的根,相对${SHORT_COMMIT_HASH};

如何使用变量来完成以下操作:

代码语言:javascript
复制
location / {
  root /usr/share/nginx/html/${SHORT_COMMIT_HASH};
} 
EN

回答 1

Server Fault用户

发布于 2019-04-09 13:04:30

我用sub_filter找到了解决方案:

代码语言:javascript
复制
server {
    listen       80;
    server_name  localhost;

    location / {
     root /usr/share/nginx/html;
     try_files $uri $uri/ /$1/index.html;

     location ~ "^/([a-z0-9]{8})/" {
        try_files $uri /$1/index.html = 404;
        sub_filter_once off;
        # sub_filter_types text/html; # mime-type based rewriter
        sub_filter '/static' '/$1/static';
  }
    }

    location ~ ^/([a-zA-Z0-9]*)/ {
      root /usr/share/nginx/html;
      try_files $uri $uri/ /$1/index.html;
    }
}
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/962156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档