【发布时间】:2017-02-11 17:18:36
【问题描述】:
我看了又好又低,发现没有这样的实现,我想知道我正在尝试的是否可能。我有 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 个根来完成而不将其中一个定义为整体拱形基根。如果可以做到这一点并远离正则表达式会更好——但如果需要,那就需要了。
【问题讨论】:
标签: nginx static-files nginx-location