Vue路由器历史记录模式在生产中不起作用

问题描述 投票:2回答:1

我是vue的新手,而vue路由器有问题。我正在使用Vue CLI 3。历史记录模式在本地服务器上运行良好,但在生产模式下刷新时显示404

我知道这是一个常见问题,因此我遵循了Vue Router的文档。所以我将这段代码放在项目根目录下的.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>

因为我是初学者,所以我一定想念任何东西吗?

谢谢您的帮助!

vue.js vue-router
1个回答
0
投票

在Google Cloud Compute上,运行Debian并通过Apache服务。

这很痛苦,因为mod_rewrite根本无法工作。原来,问题似乎出在产品中的Apache(尤其是如果您自己做中),默认设置会钉住您。

/ etc / apache2 / apache2.conf中,以下规则为例:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

因此,// var / www / http

下的文件,这意味着任何。htaccess重写规则都将不允许。幸运的是,一旦我们知道了这一点,就可以启用重写功能:
<Directory /var/www/html>
        AllowOverride All
</Directory>

。htaccess

重写规则(通过mod_rewrite)现在将按预期应用:
<IfModule mod_rewrite.c>

  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d    
  RewriteRule . /index.html [L]

</IfModule>
© www.soinside.com 2019 - 2024. All rights reserved.