这是个老知识点,但也需要简单做个笔记
我们都知道vue路由是利用了Html5的history pushState() 实现了无刷新跳转页面
而打包之后放到线上环境刷新就会404找不到页面
问题在于vue-rouer设置的路径其实并不是一个真实的路径,服务端也并没有与之对应的路径
所以我们看一下 官方解决方案
Apache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
nginx
location / {
try_files $uri $uri/ /index.html;
}
其中在配置Apache的时候遇到一个奇怪的问题,导致服务器跑不起来
解决方法:
#LoadModule rewrite_module modules/mod_rewrite.so
将httpd-conf中这行注释掉就没问题了,配置nginx不存在这个问题
网友评论