前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue3项目Build后部署在Nginx上F5刷新页面空白或404

Vue3项目Build后部署在Nginx上F5刷新页面空白或404

作者头像
骤雨重山
发布2023-08-13 11:07:10
1.5K0
发布2023-08-13 11:07:10
举报
文章被收录于专栏:骤雨重山骤雨重山

环境

vue-cli 5.x vue-router 4.x Nginx

综述

使用Vue3项目Vue-router4开发完毕后项目Build打包部署线上环境后,首页能正常访问菜单内点击切换也没有问题,但当你刷新页面后,则出现 404 Not Found,故在此记录一下解决办法

解决思路

在与chatGPT进行深刻激烈的探讨后,确定了是Nginx的问题,根据chatGPT的引导进行配置依旧无法解决,刷新页面时访问的资源在服务端找不到,因为此时vue-router设置路由地址被当作url地址,此时的地址路径肯定不是真实存在的,所以出现404现象。

之所以出现上面的现象,是因为在nginx配置的根目录/www/wwwroot/dist下面压根没有'XXX/xxx/xxx'这个真实资源存在,这些访问资源都是在js里渲染的。

代码语言:javascript
复制
服务端nginx的一开始配置如下(假设域名为:www.vvhan.com):
server
{
    listen 80;
    server_name www.vvhan.com;
    index index.html;
    root /www/wwwroot/dist;
}

如上出现404的原因是由于在这个域名根目录/www/wwwroot/dist下面压根就没有'XXX/xxx/xxx'这个真实目录存在。

解决问题

代码语言:javascript
复制
在服务端nginx配置里添加vue-route的跳转设置,正确配置如下:
server
{
    listen 80;
    server_name www.vvhan.com;
    index index.html;
    root /www/wwwroot/dist;

    #vue-router配置
    location / {
        try_files $uri $uri/ @router;
        index index.html;
    }
    location @router {
        rewrite ^.*$ /index.html last;
    }
}

重启 nginx 后,问题就迎刃而解了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年08月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 综述
  • 解决思路
  • 解决问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档