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

时间:2016-10-03 17:24:19

标签: nginx static-files nginx-location

我看起来很高兴,并没有找到这样的实现,我想知道我正在尝试的是否可能。我有3个相对路径来提供静态内容:

"$f"

3个不同的根本身是静态的,但来自/ static on down的内容只是半静态的(根据提供的确切文件可能有点不同,可能存在于一个路径而不存在于另一个路径中)。例如

"$f"

以下是我想做的事情。基本上,如果" / static"请求内容我想检查与path1关联的相对路径,如果没有找到,则检查与path2关联的相对路径,如果未找到,则检查与path3关联的相对路径。这看起来相当简单,但我没有找到任何能够概述如何做到这一点的例子。我可以将3个不同的根设置为变量:

rm

或者可能如下所述,因为它只需要/ static content:

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

或者我试图做什么甚至可以完成?如果我不能用3个根来完成它可以用2个根完成,而不将其中一个定义为整体拱形基根。如果有可能做到这一点并远离正常的表达式,那就更好了 - 但如果需要,则需要这样做。

1 个答案:

答案 0 :(得分:3)

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

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