我有一个看起来像这样的 nginx.conf:
server {
...
root /var/opt/data/web;
...
location ~* \.(?:eot|woff|woff2|ttf|js)$ {
expires 1M;
}
...
location /one {
root /var/opt/data/alternatives;
try_files $uri $uri/ =404;
}
location /two {
root /var/opt/data/alternatives;
try_files $uri $uri/ =404;
}
}
当我curl http://localhost/one/
得到index.html
存储在/other
. 但是当我 curl.../localhost/one/foo.js
找不到文件时,我在 error.log 中得到了这个:
open() "/default/foo.js" 失败(2:没有这样的文件或目录)
我尝试了其他变体,例如location ~ (one|two)
,location /one/
甚至location ~ /(one|two)
,但它们都不起作用。
完整的配置包含更多location
的 s,但我猜我的问题的原因是我设置.js
资源的位置,expire -1
因为这会阻止将根更改为我需要的。
如果这很重要:我使用 nginx 1.15.2。如果您想知道为什么我有这个奇怪alternatives
的目录:该web
目录是由 CMS 软件在alternatives
edgit pull
时创建的。