Nginx

無法通過 Nginx 提供 NextJS 靜態資產

  • April 2, 2019

我有一個在埠 3000 上執行的 NextJS 應用程序,並且我有一個test.ico位於以下位置的文件:

/static/images/icons/

我希望從根目錄而不是實際路徑中提供此文件。我的意思是而不是**https://www.shandillia.com/static/images/icons/test.ico,我希望它可以作為https://www.shandillia.com/test.ico**使用。我可以很容易地配置我的 Express 伺服器來提供這個文件,但我想讓 Nginx 處理這個。所以我在我的 Nginx conf 伺服器塊中添加了以下配置:

location / {
   proxy_pass http://127.0.0.1:3000;
   charset UTF-8;
   proxy_http_version 1.1;
 }
 location /test.ico {
   proxy_pass http://127.0.0.1:3000/static/images/icons/test.ico;
   expires 365d;
   add_header Pragma public;
   add_header Cache-Control "public";
 }
 location ~* \.(?:ico|svg|woff|woff2|ttf|otf|css|js|gif|jpe?g|png)$ {
  proxy_pass http://127.0.0.1:3000;
  expires 365d;
  add_header Pragma public;
  add_header Cache-Control "public";
 }

但是,https ://www.shandillia.com/test.ico 現在正在拋出 404。我做錯了什麼?

則表達式 location優先於正則前綴 location塊。有關詳細資訊,請參閱此文件

您可以使用以下任何一種來更改優先順序:

location = /test.ico
location ^= /test.ico
location ~ ^/test.ico

引用自:https://serverfault.com/questions/961139