我是 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>
因为我是初学者,所以我一定会错过一些东西,有什么想法吗?
感谢您的帮助!
最佳答案
在 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>
关于vue.js - Vue-router 历史模式在生产中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53872364/