加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx-如何使用具有2个或更多根的try_files

发布时间:2020-12-13 20:55:31 所属栏目:Nginx 来源:网络整理
导读:我一直望而却步,发现没有这样的实现,并且想知道我尝试的事情是否可能.我有3条相对路径可提供静态内容: Path1: /usr/local/www/style1/static/...Path2: /usr/local/www/style2/static/...Path3: /usr/local/www/style3/static/... 这3个不同的根本身是静态

我一直望而却步,发现没有这样的实现,并且想知道我尝试的事情是否可能.我有3条相对路径可提供静态内容:

Path1: /usr/local/www/style1/static/...
Path2: /usr/local/www/style2/static/...
Path3: /usr/local/www/style3/static/...

这3个不同的根本身是静态的,但是/ static到下的内容只是半静态的(可能有所不同,具体取决于要提供的确切文件,并且可能存在于一个路径中,而不是另一个路径中).例如

/static/css/custom.css
/static/css/form/button.css
/static/css/form/images/buttondisabled.png
/static/images/ui/buttons/add_item.png
/static/images/ui/menu/help.png

以下是我想做的.基本上是这样,如果请求“ / static”内容,我想检查与path1相关的相对路径,如果在那里找不到,则检查与path2相关的相对路径,如果没有找到,则检查与path3相关的相对路径.这似乎很简单,但是我还没有找到任何示例概述该操作的方式.我可以将3个不同的根设置为变量吗:

path1root /usr/local/www/style1;
path2root /usr/local/www/style2;
path3root /usr/local/www/style3;

location /static
{
    try_files path1root/$uri path2root/$uri path3root/$uri (=404);
}

或可以按照以下方式进行操作,因为仅/ static内容需要它:

location /static
{
    path1root /usr/local/www/style1;
    path2root /usr/local/www/style2;
    path3root /usr/local/www/style3;

    try_files path1root/$uri path2root/$uri path3root/$uri (=404);
}

还是可以完全尝试做我想做的事情?如果我不能使用3个根来做到这一点,那么可以仅用2个根来完成,而无需将其中一个定义为整体拱形基根.如果有可能做到这一点,并且避免使用正则表达式,那会更好-但是,如果需要这样做,则需要这样做.

最佳答案
您可以使用公共根目录,并尝试使用try_files语句中的三个目录:

location /static {
    root /usr/local/www;
    try_files /style1$uri /style2$uri /style3$uri =404;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读