vue采用了路由的history模式,本地项目运行,刷新子页面都是OK的。部署到测试服务器,正常跳转都ok,但刷新子页面就会出现404,请求变成了get,没有进入封装的请求体中,让人很费解,也有没有打印错误。
解决方法:
1、去除mode:‘history’
去除mode:‘history’,采用hash模式
2、服务器上配置
1、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>
2、nginx
server{
listen 80;
server_name 域名;
location / {
try_files $uri $uri/ @router; // 这里配置vue ’history‘ 路由子页面无法刷新
root 前端页面路径;
index index.html;
}
// 这里配置vue ’history‘ 路由子页面无法刷新
location @router {
rewrite ^.*$ /index.html last;
}
}
目前我涉及到这两种后端