最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue/react項目刷新頁面出現(xiàn)404報錯的原因及解決辦法

 更新時間:2023年05月31日 09:42:31   作者:Boale_H  
Vue項目打包部署到線上后,刷新頁面會提示404,下面這篇文章主要給大家介紹了關(guān)于vue/react項目刷新頁面出現(xiàn)404報錯的原因及解決辦法,文中將解決的辦法介紹的很詳細(xì),需要的朋友可以參考下

背景

問題描述:vue/react項目,正常的頁面操作跳轉(zhuǎn),不會出現(xiàn)404的問題,但是一旦刷新,就會出現(xiàn)404報錯。

產(chǎn)生原因:我們打開vue/react打包后生成的dist文件夾,可以看到只有一個 index.html 文件及一些靜態(tài)資源,這個是因為vue/react是單頁應(yīng)用(SPA),只有一個index.html作為入口文件,其它的路由都是通過JS來進行跳轉(zhuǎn)的。
而網(wǎng)頁上顯示的是靜態(tài)資源的絕對路徑,雖然瀏覽器上的url變化了,但實際上服務(wù)器的靜態(tài)資源是沒有更改路徑的,始終只有index.html這一個入口,所以刷新就會導(dǎo)致url上的路徑和服務(wù)器上的資源不匹配,無法找到靜態(tài)資源,從而報錯404。(多頁應(yīng)用因為有多個入口文件,所以不會有這樣的問題)。

接下來我們看看服務(wù)器上的nginx配置:

server {
  // 監(jiān)聽80端口
  listen 80;
  // 定義你的站點名稱
  server_name website.com;
  // 根據(jù)請求 URI 設(shè)置配置
  location / {
      // 站點根目錄,這里為 vue 構(gòu)建出來的 dist 目錄
      root   /www/dist;
      // 站點初始頁為index.html 或 index.htm
      index  index.html index.htm;
  }
}

根據(jù)nginx配置我們可以得出,當(dāng)我們在地址欄輸入域名(如www.xxx.com)時,這時會打開我們 dist 目錄下的 index.html 文件,然后我們再通過頁面操作跳轉(zhuǎn)路由進入到 www.xxx.com/login,關(guān)鍵在這里,當(dāng)我們在 www.xxx.com/login 頁執(zhí)行刷新操作,nginx location 是沒有相關(guān)配置的,所以就會出現(xiàn) 404 的情況。

解決辦法

法1:將vue/react路由模式由history路由改為hash路由

為什么hash模式下沒有問題:

hash路由的原理是onhashchange事件,hash模式下,僅hash符號之前的內(nèi)容會被包含在http請求中,如www.xxx.com/#/login,hash的值為 #/login,hash值#/login雖然出現(xiàn)在 url中,但不會被包括在http請求中,其只會請求www.xxx.com,對服務(wù)端完全沒有影響,因此改變hash不會重新加載頁面,即使服務(wù)器nginx沒有配置location,也不會返回404錯誤。

history模式:原理是利用了h5的Interface 中的pushState()方法和replaceState()方法,它們提供了對瀏覽器歷史記錄進行修改的功能,但當(dāng)它們執(zhí)行修改時,雖然改變了當(dāng)前的 URL,但瀏覽器不會立即向服務(wù)器發(fā)送請求,因此history模式正常頁面操作跳轉(zhuǎn)路由,是不會再次發(fā)送http資源請求的。但是當(dāng)刷新的時候,由于url已經(jīng)改變,如www.xxx.com/login會完整地向服務(wù)器請求相關(guān)資源,所以就會造成對應(yīng)路徑的資源找不到,從而返回404。

但是使用hash路由,url上會攜帶#號標(biāo)志,且history模式的同步更新瀏覽器歷史記錄功能就沒有了。

法2:在服務(wù)器nginx配置文件里,添加如下代碼,再重啟nginx,刷新網(wǎng)頁就OK了

location / {
 try_files $uri $uri/ @rewrites;
 index index.html;
}
location @rewrites {
  rewrite ^.*$ /index.html last;
}

文章參考

  • https://www.cnblogs.com/echohye/p/16566706.html
  • http://m.fzitv.net/article/256217.htm
  • https://www.cnblogs.com/ling-yu-amen/p/11533726.html

總結(jié)

到此這篇關(guān)于vue/react項目刷新頁面出現(xiàn)404報錯的原因及解決辦法的文章就介紹到這了,更多相關(guān)vue/react項目刷新頁面404內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3 學(xué)習(xí)筆記之a(chǎn)xios的使用變化總結(jié)

    vue3 學(xué)習(xí)筆記之a(chǎn)xios的使用變化總結(jié)

    本篇文章主要旨在幫助正在學(xué)vue3或者準(zhǔn)備學(xué)vue3的同學(xué)了解網(wǎng)絡(luò)請求axios該如何使用,防止接觸了一點點vue3的同學(xué)會有個疑問。有興趣的小伙伴可以關(guān)注一下
    2021-11-11
  • Vue項目部署樣式全失效故障排查與修復(fù)指南

    Vue項目部署樣式全失效故障排查與修復(fù)指南

    Vue 項目打包后部署到新服務(wù)器,頁面出現(xiàn)白版或布局完全錯亂,但在本地和舊服務(wù)器上均顯示正常,本文檔用于指導(dǎo)前后端人員快速定位并解決此類資源加載成功但樣式失效的問題,需要的朋友可以參考下
    2026-05-05
  • 解讀element?el-upload上傳的附件名稱不顯示?file-list賦值

    解讀element?el-upload上傳的附件名稱不顯示?file-list賦值

    這篇文章主要介紹了解讀element?el-upload上傳的附件名稱不顯示?file-list賦值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue3關(guān)鍵字高亮指令的實現(xiàn)詳解

    vue3關(guān)鍵字高亮指令的實現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了vue3實現(xiàn)關(guān)鍵字高亮指令的相關(guān)資料,w文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2023-11-11
  • vue中實現(xiàn)點擊變成全屏及縮放功能

    vue中實現(xiàn)點擊變成全屏及縮放功能

    這篇文章主要介紹了vue中實現(xiàn)點擊變成全屏及縮放功能,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue 項目軟鍵盤回車觸發(fā)搜索事件

    vue 項目軟鍵盤回車觸發(fā)搜索事件

    這篇文章主要介紹了vue 項目軟鍵盤回車觸發(fā)搜索事件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Vue打包工具(構(gòu)建工具)和腳手架過程

    Vue打包工具(構(gòu)建工具)和腳手架過程

    文章介紹了Vue項目中Webpack和Vite的使用區(qū)別,Webpack需vue-cli全局安裝,適合復(fù)雜場景;Vite更輕量快速,適合Vue3項目,并提到尤雨溪團隊新推出的VoidZero技術(shù)布局
    2025-08-08
  • vue點擊彈窗自動觸發(fā)點擊事件的解決辦法(模擬場景)

    vue點擊彈窗自動觸發(fā)點擊事件的解決辦法(模擬場景)

    本文通過案例場景給大家介紹vue點擊彈窗自動觸發(fā)點擊事件的解決辦法,通過兩種方法給大家分享vue 自動觸發(fā)點擊事件的處理方法,對vue自動觸發(fā)點擊事件相關(guān)知識感興趣的朋友一起看看吧
    2021-05-05
  • vue引入element-ui之后,頁面是空白的問題及解決

    vue引入element-ui之后,頁面是空白的問題及解決

    這篇文章主要介紹了vue引入element-ui之后,頁面是空白的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue本地模擬服務(wù)器請求mock數(shù)據(jù)的方法詳解

    vue本地模擬服務(wù)器請求mock數(shù)據(jù)的方法詳解

    這篇文章主要給大家介紹了關(guān)于vue本地模擬服務(wù)器請求mock數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-03-03

最新評論

崇文区| 和静县| 光山县| 体育| 泰来县| 湖南省| 灵台县| 盘山县| 卢湾区| 莎车县| 水城县| 莱芜市| 汝阳县| 屯留县| 洱源县| 津市市| 望城县| 黔东| 郧西县| 屏边| 淄博市| 黄陵县| 灌云县| 拉孜县| 闵行区| 丹巴县| 介休市| 菏泽市| 晴隆县| 平泉县| 长汀县| 深圳市| 石屏县| 北川| 阜阳市| 佛冈县| 凌海市| 诸城市| 泸定县| 嘉峪关市| 杨浦区|