gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:01:03 25 4
gpt4 key购买 nike

我看起来既高又低,发现没有这样的实现,我想知道我正在尝试的是否可能。我有 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

以下是我想做的。基本上,如果请求“/静态”内容,我想检查与 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 个根而不将其中一个定义为整体拱形基根。如果有可能做到这一点并远离正则表达式会更好——但如果需要这样做,那就需要这样做。

最佳答案

您可以使用公共(public)根目录并尝试 try_files 中的三个目录。陈述:

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

关于nginx - 如何使用具有 2 个或更多根的 try_files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39837080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com