前言
nginx部署完專案後,訪問時 重新整理後 就會出現404的報錯介面(沒有配置情況下,而且不是首頁根目錄重新整理)
當重新訪問首頁後,又恢復正常,只要一重新整理就會出現這個問題。這是為什麼呢?
其實很簡單就是你的nginx配置上沒有新增重定向跳轉
報錯原因
因為web單頁面開發模式,只有一個index.html入口,其他路徑是前端路由去跳轉的,nginx沒有對應這個路徑,當然就是404了。
解決的方式很簡單,就是在我們的代理對映處,配置下面這段程式碼即可成功搞定,不再出現404!
配置完後 重啟nginx服務即可正常的重新整理訪問了
#在配置中加上try_files,意思跟翻譯差不多,“嘗試讀取檔案”。
try_files $uri $uri/ /index.html =404;
try_files 表示的是檢查檔案是否存在,就是指的在每次匹配URL路徑的時候,找不到對應的靜態資源的時候自動跳轉到index.html檔案。
還有另外一種404的錯誤,那就是nginx訪問的檔案許可權問題。
比如,你訪問的路徑,他要的許可權是root許可權,而我們啟動nginx的許可權是普通使用者許可權,則會因為許可權不錯,導致無法正常訪問。
說明
為什麼重新整理頁面會出現這種情況
如:http://192.168.0.180:8080/login ,此時重新整理頁面的時候回去根據瀏覽器的url, 訪問nginx上請求對應的靜態資源,而nginx會根據localhost / 的匹配規則在dist資料夾裡面沒有找到對應的靜態檔案login,所以就會報錯404。
大致就是這樣的情況,如有問題歡迎留言交流。