weixin_42522460 2023-09-12 10:54 采纳率: 0%
浏览 9
已结题

关于nginx+vue,同域名访问不同项目,但是没能解决刷新404的问题,实在找不出解决的方法了!

nginx+vue,同域名访问不同项目,网上搜了很多,解决方案都差不多,配置也是配置那几项,我都按着配置了,确实解决了跳转404的问题,但是没能解决刷新404的问题,也就是登录之后到了首页,并且去其他页面都没问题,唯独就是刷新,一刷新就404,实在找不出解决的方法了,烦请大家帮帮忙,谢谢大家!
下面是我的配置文件。
nginx.conf

img


img

vue.config.js

img

router/index.js

img

  • 写回答

7条回答 默认 最新

  • 「已注销」 2023-09-12 11:20
    关注

    这个问题可能是由于nginx的配置没有正确地处理Vue的路由。Vue使用的是HTML5的history模式,这种模式需要服务器端配合处理,否则在刷新页面时会出现404错误。

    以下是一个可能的解决方案:

    1. 在nginx的配置文件中,确保你已经设置了try_files。这是一个重要的指令,它告诉nginx如果请求的文件不存在,那么就去尝试寻找其他的文件。对于Vue项目,你应该在location块中设置try_files $uri $uri/ /index.html;

    例如:

    location / {
        root /path/to/your/vue/project/dist;
        try_files $uri $uri/ /index.html;
    }
    
    1. 确保你的Vue项目的路由模式是history模式。如果你使用的是Vue CLI创建的项目,那么默认的路由模式就是history模式。你可以在vue.config.js文件中确认这一点:
    module.exports = {
        router: {
            mode: 'history',
            ...
        }
    }
    
    1. 如果你的Vue项目有多个,并且都在同一个nginx服务器下,那么你需要为每个项目都设置一个location块,每个location块中都要有try_files的设置。
    2. 检查你的nginx配置是否正确,你可以使用nginx -t命令来检查。如果配置没有问题,那么你需要重启nginx来使新的配置生效。
    3. 最后,确保你的nginx服务器已经正确地启动了,你可以通过访问你的Vue项目的URL来测试。如果所有的设置都正确,那么你应该可以通过刷新页面来访问所有的Vue路由。

    希望这个解决方案可以帮助你解决问题。如果你还有其他的问题,欢迎随时提问。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月12日
  • 修改了问题 9月12日
  • 创建了问题 9月12日

悬赏问题

  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型