我是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>
因为我是初学者,所以我必须错过一些东西,知道吗?
谢谢您的帮助!
答案 0 :(得分: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>