亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React-Router V4+ 打包后刷新網頁404錯誤

React-Router V4+ 打包后刷新網頁404錯誤

牛魔王的故事 2018-12-29 18:13:53
開發使用的構建工具是 create-react-app我在使用 React-Router V4+ 版本的時候,npm run build編譯成功后放在我本地的 Tomcat9 上,運行后可以正常訪問首頁,跳轉其它頁面 URL 都正常顯示, 但是再刷新當前頁面404錯誤。按照官方提示:There is also a similar approach for Apache servers. Create an .htaccess file in your folder's root:RewriteBase /RewriteRule ^index\.html$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.html [L]問題1 :創建了 .htaccess 文件后,該文件是放在我編譯好的包的根目錄(index.html所在目錄)下,還是在 其它位置。如果需要修改其它東西如 Apache 配置文件,要怎么修改。問題2 :在網上看到這種情況都是將 URl 重定向到 index.html,請問還有其它不修改服務器配置文件的解決辦法沒有。跪求解答,謝謝
查看完整描述

1 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

我沒看過文檔,建議你要理解內部的機制。

之所以你在瀏覽器內可以由首頁跳轉到其他路由地址,是因為這是由前端自行渲染的,你在React Router定義了對應的路由,腳本并沒有刷新網頁訪問后臺,是JS動態更改了location。

當你刷新時,你首先是訪問的后臺地址,然后返回的頁面內加載了React代碼,最后在瀏覽器內執行;也就是說如果這個時候報404,是因為你后臺并沒有針對這個路由給出返回HTML內容,也談不上執行React Router了。

解決辦法就一條:如果你期望所有的路由都由React Router來定義,只有你的后臺,無論任何路徑,都返回index.html就好了。剩下的事情交給React Router。那么你要做的就是修改后臺服務器,可以放在apache,也可以放在你的java路由內做一個通配路徑處理。


查看完整回答
反對 回復 2019-01-18
  • 1 回答
  • 0 關注
  • 777 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號