问题:生产环境中,vue指定路由【通常是指定路由\
跳转到index
或者home
】由于使用了redirect进行域名重定向,导致浏览器刷新时候出现404错误的问题。
ide的测试环境当中正常。
这是由于vue使用history模式造成的问题,解决方案在调整nginx.conf
使用phpstudy的,去vhosts文件夹里面找到自己的conf文件进行调整
【伸手党看这里】
1、location / {
下第一行增加:
try_files $uri $uri/ @router;
2、location结束后第一行增加:
location @router {
rewrite ^.*$ /index.html last;
}
调整后的代码内容:
server {
listen 8080;#默认端口是80,如果端口没被占用可以不用修改
server_name localhost;
root D:/vue/my_project/dist;#vue项目的打包后的dist
location / {
try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
index index.html index.htm;
}
#对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
#因此需要rewrite到index.html中,然后交给路由在处理请求资源
location @router {
rewrite ^.*$ /index.html last;
}
#.......其他部分省略
}