記錄一下自己部署上服務(wù)器的坑!!归斤!
用過Vue開發(fā)項目的應(yīng)該都知道,vue-router的作用是配置前端路由表旱捧,在本地開發(fā)調(diào)試時一切使用正常,但是部署上線到服務(wù)器踩麦,一旦刷新頁面瀏覽器就會報404(Not Found)
枚赡。后來發(fā)現(xiàn)bug的根源,每當(dāng)刷新頁面POST都會變成GET請求
谓谦,并沒有進入axios封裝的攔截中贫橙,費腦。
*注:
首先反粥,說明下vue-router的默認hash模式——使用URL的hash來模擬一個完整的URL卢肃,當(dāng)URL改變時,頁面不會重新加載
才顿。但是這種hash值不美觀莫湘。所以改用history模式來實現(xiàn)URL跳轉(zhuǎn)而無須重新加載頁面
。history 模式利用 history.pushState()來完成 URL 跳轉(zhuǎn)而無須重新加載頁面郑气。
-
處理方法一:
把
history模式改成hash模式
即可! 處理方式二:
要用這種模式幅垮,還需要后臺配置支持。因為我們的應(yīng)用是個單頁客戶端應(yīng)用尾组,如果后臺沒有正確的配置忙芒,當(dāng)用戶在瀏覽器直接訪問 http://域名/user/index,就會返回 404讳侨,出現(xiàn)以上事故呵萨。
如果 URL 匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個 index.html 頁面跨跨,這個頁面就是你下面項目依賴的頁面潮峦。
nginx
location / {
try_files $uri $uri/ /index.html;
}
以上兩個方法我嘗試過的!
附上解決此問題的博客:https://www.cnblogs.com/cx709452428/p/10338925.html