Vue项目部署后 刷新页面就404

作者: adm 分类: 前端 发布时间: 2022-09-26

今天部署将vue3+vite项目部署在nginx上,运行是没有问题,就是只要一刷新页面,就会报404,之前也部署过vue2+vuecli的项目,并没有出现过这种错误。于是想问题是不是出在vue3 或者 vite上。
经过一番查资料发现并不是,问题是出在之前vue2项目使用的vue-router是hash模式(路径中有#),而这个项目使用的vue-router是history模式的
history模式中会出现这样的问题,具体原因看大佬的解释好像是因为路由跳转是js操作,直接输入路径(或刷新路径后),服务器没有匹配的处理方法,因此需要将请求转交给js去执行。具体原因等以后有空学习一下vue-router的源码才能理解。这里先将问题解决。
第一种解决方法

server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
			# 在配置文件的此处加上这句话            
	  		try_files $uri $uri/ /index.html;
        }
    }

第二种解决方法:

将vue路由模式mode: ‘history’ 修改为 mode: ‘hash’

//router.js文件
const router = new Router({
    //mode: 'history', 
    mode: 'hash',
    routes: [
        { path: '/', redirect: '/login' },
        { path: '/login', component: Login },
    ]
})

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!