Nginx

為什麼我需要一個 try_files 來使 root 指令起作用?

  • December 15, 2018

我在讓 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;
}

有關更多資訊,請參閱此文件

引用自:https://unix.stackexchange.com/questions/441356