nginx + Vue-router history 模式 報(bào)404錯(cuò)誤的解決方案

問題描述

由于vue-router默認(rèn)的hash模式,地址欄url看起來是這樣的

127.0.0.1/#/home

如果我們不想要url中出現(xiàn)#,即

127.0.0.1/home

則我們需要在創(chuàng)建router時(shí)指定mode參數(shù)

export default new Router({
    mode: 'history',
    routes: []
})

在開發(fā)環(huán)境下,這并不會(huì)引發(fā)什么問題。
但是當(dāng)項(xiàng)目上線,假如你們使用nginx來代理前端資源時(shí)
當(dāng)你直接由地址欄訪問除了/以外的地址或刷新頁面時(shí),預(yù)期應(yīng)當(dāng)出現(xiàn)的頁面變成了nginx 404頁面
這是由于nginx無法找到對應(yīng)名字的靜態(tài)資源

解決辦法

nginx.conf配置文件靜態(tài)資源對應(yīng)的location配置項(xiàng)下加入
try_files $uri $uri/ /index.html;
look

location / {
  root   /home/xxx/frontend/dist;
  index  index.html index.htm;
  try_files $uri $uri/ /index.html;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容