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

发布时间:2020-01-14 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了nginx-如何使用具有2个或更多根的try_files 脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我一直望而却步,发现没有这样的实现,并且想知道我尝试的事情是否可能.我有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;
}

总结

以上是脚本之家为你收集整理的nginx-如何使用具有2个或更多根的try_files 全部内容,希望文章能够帮你解决nginx-如何使用具有2个或更多根的try_files 所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478
脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!