我的应用程序将在两个位置提供静态文件,一个是 /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 在这两个路径中查看静态内容。
预先感谢您的任何帮助。
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。
您可以使用 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)
让我知道它是否有效。谢谢!
| 归档时间: |
|
| 查看次数: |
8362 次 |
| 最近记录: |