Nginx為什麼我需要一個
為什麼我需要一個 try_files
來使 root
指令起作用?
我在讓 nginx 為我的前端找到靜態文件時遇到了麻煩,我添加了一個看似重言式的
try_files
指令,這使得一切正常。location /frontend { try_files $uri /; } root {{ static_root }}; index /frontend/index.html; location / { rewrite ^.*$ /frontend/index.html break; }
location /frontend
我的問題是:如果沒有第一個指令,為什麼這不起作用?
這
rewrite
是不分青紅皂白的,它適用於每個請求(甚至.css
和.js
文件)。通過添加一個單獨location
的 URI,/frontend
可以保護以rewrite
.您可能可以通過以下方式獲得類似的結果:
root /path/to/root; location / { try_files $uri $uri/ /frontend/index.html; }
有關更多資訊,請參閱此文件。