一、問題描述
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 文件(什麼?這個文件不會添加?先新建一個txt,然後另存爲 .htaccess文件就行),輸入一下內容
<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