在这里,您可以通过 2 种可能的方式解决此问题。
1.将路由历史改为“hashHistory”而不是browserHistory
<Router history={hashHistory} >
<Route path="/home" component={Home} />
<Route path="/aboutus" component={AboutUs} />
</Router>
现在使用命令构建应用程序
sudo npm run build
然后将 build 文件夹放在您的 var/www/ 文件夹中,现在应用程序工作正常,在每个 url 中添加 # 标签。喜欢
本地主机/#/home 本地主机/#/aboutus
解决方案 2:不使用浏览器历史记录的 # 标签,
在您的路由器中设置您的历史记录 = {browserHistory},现在使用 sudo npm run build 构建它。
您需要创建“conf”文件来解决404 not found页面,conf文件应该是这样的。
打开你的终端输入以下命令
cd /etc/apache2/sites-available ls nano sample.conf 加入如下内容。
<VirtualHost *:80>
ServerAdmin admin@0.0.0.0
ServerName 0.0.0.0
ServerAlias 0.0.0.0
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html/">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
现在您需要使用以下命令启用 sample.conf 文件
cd /etc/apache2/sites-available
sudo a2ensite sample.conf
然后它会要求你重新加载 apache 服务器,使用 sudo service apache2 reload 或 restart
然后打开您的 localhost/build 文件夹并添加具有以下内容的 .htaccess 文件。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^.*$ / [L,QSA]
现在该应用程序正常运行。
注意:将 0.0.0.0 ip 更改为您的本地 IP 地址。
我希望它对其他人有帮助。