Nginx 配置中静态位置的多个位置

pra*_*tik 6 nginx

我的应用程序将在两个位置提供静态文件,一个是 /my/path/project/static,另一个是 /my/path/project/jsutils/static。

我很难让网络服务器在两个目录中查找静态内容。这是我在我的应用程序的 nginx 配置文件中的静态位置条目。

    location ^~ /static {
        root   /my/path/project/static;
        alias /my/path/project/jsutils/static;
       index  index.html index.htm;
    }
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:“alias”指令是重复的,“root”指令是之前指定的。

我不确定如何让 nginx 在这两个路径中查看静态内容。

预先感谢您的任何帮助。

Lud*_*wig 5

location ^~ /static {
    root /my/path/project/static;
    index index.html index.htm;
    try_files $uri $uri/ @secondStatic;
}

location @secondStatic {
    root /my/path/project/jsutils/static;
}
Run Code Online (Sandbox Code Playgroud)

因此,首先将在 /my/path/project/static 中搜索文件,如果在那里找不到,则将触发 secondStatic 位置,将根更改为 /my/path/project/jsutils/static。


Chu*_* Ma 3

您可以使用 try_files ( http://wiki.nginx.org/HttpCoreModule#try_files )。假设您的静态文件位于 /my/path/project/static 和 /my/path/project/jsutils/static 中。你可以试试这个:

location ^~ /static {
   root   /my/path/project;
   index  index.html index.htm;
   try_files $uri $uri/ /jsutils$uri /jsutils$uri/ =404;
}
Run Code Online (Sandbox Code Playgroud)

让我知道它是否有效。谢谢!