我在让 nginx 找到前端的静态文件时遇到了麻烦,我添加了一条看似同义反复的try_files
指令,这使得一切正常。
location /frontend {
try_files $uri /;
}
root {{ static_root }};
index /frontend/index.html;
location / {
rewrite ^.*$ /frontend/index.html break;
}
我的问题是:如果没有第一个指令,为什么这不起作用location /frontend
?
答案1
这rewrite
是不加区别的,它适用于每个请求(甚至.css
文件.js
)。通过添加单独的location
URI,/frontend
可以防止以 开头的 URI 被随意使用rewrite
。
您可能可以通过以下方式获得类似的结果:
root /path/to/root;
location / {
try_files $uri $uri/ /frontend/index.html;
}
看这个文件了解更多。