欢迎来到Bokey的空间🌼

加载中...

💓 0🔥 16

Vue使用history模式的router,在宝塔部署(nignx)后,点击刷新出现404问题

Vue使用history模式的router,在宝塔部署(nignx)后,点击刷新出现404问题解决

🕘 2025-04-30

Vue使用history模式的router,在宝塔部署(nignx)后,点击刷新出现404问题

这个问题在我之前还找了挺久的,主要是当时没有学nginx不知道问题在哪里

问题介绍

vue项目使用nignx上线部署后,访问没有问题,但点击刷新后就404。

原因分析

因为在vue项目中使用了history的路由模式,换成hash模式就没有问题。
那为什么使用hash模式就没有问题呢?

解释:
hash模式在每次刷新页面时是直接更改“#”后的路径,history模式每次刷新会重新向服务器重新请求资源,但是服务器会把vue的路由地址当成文件路径访问(如: /pages/index),服务器又没有这个文件路径,且服务端没有配置相应的路由重定向,就会访问404。
比如:
www.baidu.com/one/two,这个页面刷新时,history模式下会请求服务器的/one/two这个文件,但服务器哪里来的这个文件呢,vue又是单页面应用,所有的页面都是index.html,因此就404了。

解决办法

既然有问题那就肯定有办法,分两种:

  1. 使用hash模式的路由
JavaScript 复制代码
const router = new Router({
    mode: 'hash'
});
    1. Nginx配置伪静态(配置所有找不到的请求都返回index.html)
      Nginx的配置文件加入伪静态:
Nginx 复制代码
location / {
    try_files $uri $uri/ /index.html;
}

宝塔中配置:

Vue使用history模式的router,在宝塔部署(nignx)后,点击刷新出现404问题
  • 发布于

    2025-04-30

  • 更新于

    2025-10-10

  • 类目

  • 作者

    Bokey

  • 版权协议

cc

Developed & Design by Bokey
已经发电运行了 0 天,我会继续努力
Copyright © 2024-2029 Bokey's Space
CC BY-NC-SA 4.0
粤ICP备2025398830号-1