react單頁應用使用了Router 路由,部署在Apache服務器,刷新報錯 404 解決

一、問題描述

react單頁應用使用了BrowserRouter 路由(HTML5 history API ),項目打包後,使用apache服務器訪問http://www.ceshi.com/userinfo,能夠正常顯示,但是刷新後頁面404了

二、問題原因

刷新頁面時訪問的資源在服務端找不到,因爲react-router設置的路徑不是真實存在的路徑。
如上的404現象,是因爲在apache配置的根目錄下面壓根沒有userinfo這個真實資源存在,這些訪問資源都是在js裏渲染的。

三、解決方案

1:進入apache目錄的conf目錄

2:打開httpd.conf

3:找到#LoadModule rewrite_module modules/mod_rewrite.so然後把前面的#去掉

4:找到所有的AllowOverride配置項,把所有的None都修改爲All

5:在網站根目錄下面新建一個 .htaccess 文件(不需要文件名,直接.htaccess 就可以,Windows可以),輸入一下內容

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.html$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.html [L]
</IfModule>

6:重啓apache
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章