在这里,您可以通过 2 种可能的方式解决此问题。
1.将路由历史改为“hashHistory”而不是browserHistory代替
<Router history={hashHistory} >
<Route path="/home" component={Home} />
<Route path="/aboutus" component={AboutUs} />
</Router>
现在使用命令构建应用程序
sudo npm run build
然后将构建文件夹放在您的 var/www/ 文件夹中,现在应用程序可以正常工作,并在每个 url 中添加 # 标记。喜欢
本地主机/#/home 本地主机/#/aboutus
解决方案2:没有#标签使用browserHistory,
在您的路由器中设置您的历史记录 = {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 或重新启动
然后打开您的 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 地址。
我希望它对其他人有帮助。