vue項目history模式刷新404問題解決辦法
前言
vue項目history模式部署到服務(wù)器后 ,根路徑訪問沒有問題,但是進(jìn)入其他功能再刷新頁面就會出現(xiàn)404,因為你沒在nginx或者apache配置上面加上重定向跳轉(zhuǎn)。
解決辦法,只需要加上這段配置:
nginx配置內(nèi)容:
location / {
try_files $uri $uri/ @router;
index index.html;
}
location @router {
rewrite ^.*$ /index.html last;
}apache配置內(nèi)容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.html [L]
這句配置的意思是每次匹配url路徑時候找不到對應(yīng)靜態(tài)資源時候調(diào)制跳轉(zhuǎn)到index.html文件
解析為什么會這樣(針對路由在history模式下):
因為vue項目中路由hash模式改為了history模式,由于hash模式時url帶的#號后面是哈希值不會作為url的一部分發(fā)送給服務(wù)器,而history模式下當(dāng)刷新頁面之后瀏覽器會直接去請求服務(wù)器,而服務(wù)器沒有這個路由,于是就出現(xiàn)404。
因為我們的應(yīng)用是單頁客戶端應(yīng)用,當(dāng)使用 history 模式時,URL 就像正常的 url,可以直接訪問http://www.xxx.com/user/id,但是因為vue-router設(shè)置的路徑不是真實存在的路徑,所以刷新就會返回404錯誤。
想要history模式正常訪問,還需要后臺配置支持。要在服務(wù)端增加一個覆蓋所有情況的候選資源:如果 URL 匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個 index.html 頁面,這個頁面就是你 app 依賴的頁面。
也就是在服務(wù)端修改404錯誤頁面的配置路徑,讓其指向到index.html。
總結(jié)
到此這篇關(guān)于vue項目history模式刷新404問題解決辦法的文章就介紹到這了,更多相關(guān)vue history模式刷新404內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue項目通過a標(biāo)簽下載圖片至zip包的示例代碼
在vue項目中,將圖片下載可使用流的形式,下載成單個圖片,或者將多個圖片下載至zip包,本文就是介紹使用a標(biāo)簽下載圖片的用法,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下2023-10-10
Vue中Pinia狀態(tài)管理的四大實戰(zhàn)場景指南
Pinia 是 Vue 官方推薦的狀態(tài)管理庫,這篇文章主要為大家詳細(xì)介紹了Vue中Pinia狀態(tài)管理的四大實戰(zhàn)場景,感興趣的小伙伴可以了解一下2025-10-10

