vue部署到域名二级目录刷新404的解决

 更新时间:2022年09月06日 09:11:23   作者:DefineJ  
这篇文章主要介绍了vue部署到域名二级目录刷新404的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue部署到域名二级目录刷新404

一个域名有个根目录,但有两个项目,就需要二级目录

比如说,我有一个域名为csdn.com的服务器,我想部署两个项目:

  • 12306项目:http://csdn.com/12306
  • 淘宝项目:http://csdn.com/taobao

如果是单页项目,而且单页项目的路由用的是history模式,不管是vue还是react都会“刷新当前页面404

这是因为这种(history)模式会被错误的认为向服务端发出了真请求,但是其实这这是前端路由变化,后端自然也没做好相应你的处理,所以就404了

前端配置:

vue.config.js增加如下配置:

publicPath: '/caspage/'

路由配置:

const router = new VueRouter({
  mode: 'history',
  base:'/caspage/',
  routes
})

nginx配置:

 # 这里是需要部署的二级目录应用配置
 location /cloudChartPage {
    alias /data/cloudChartPage/;
    index  index.html index.htm;
    try_files $uri $uri/ /cloudChartPage/index.html;
 }

然后重新启动就行了

🔚

vue如何部署二级目录

有的时候,我们的域名很珍贵,除了二级域名外。

我们不仅可以把项目部署到当前域名下 也可以部署到二级目录下,这样的话,就可以部署多个项目了。

比如说,我有一个域名为sslcsq.com的服务器,我想部署两个项目:

  • 京东项目:http://sslcsq.com/jingdong
  • 淘宝项目:http://sslcsq.com/taobao

说一下这里会遇到得问题

普通项目不会有问题,

但是如果是单页项目(比如vue写的单页面),而且单页项目的路由用的是history模式,不管是vue还是react都会出现一个问题

那就是“刷新当前页面404”

这是因为这种(history)模式会被错误的认为向服务端发出了真请求,但是其实这这是前端路由变化,后端自然也没做好相应你的处理,所以就404了

如何解决

前端配置(前端看这就行了,后面找后台配置)

在vue.config.js中增加如下配置:

publicPath: '/taobao/'                   这里就是配置的二级目录

路由配置如下:

const router = new VueRouter({
  mode: 'history',
  base:'/taobao/',                          这里就是配置的二级目录
  routes
})

后端nginx.conf配置如下:(注意前后端沟通~)

# 首先给要部署的项目分配一个服务
  server {
    listen 8001;
    location / {
        # vue h5 history mode 时配置
        try_files $uri $uri/ /index.html;
        root html/caspage;
        index index.html index.htm;
    }
}
  # 再到配置域名的主配置server上做反向代理 
server {
    listen       80;
    server_name  localhost; 
    location / {
        root   html;
        index  index.html index.htm;
        # vue-router的history模式下,刷新页面404处理
        try_files $uri $uri/ /index.html;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
   
     
     # 这里是需要部署的二级目录应用配置
     location /cloudChartPage {
        alias /data/cloudChartPage/;
        index  index.html index.htm;
        try_files $uri $uri/ /cloudChartPage/index.html;
     }
}

新启动然后访问就可以http://sslcsq.com/taobao 或者 http://sslcsq.com/京东 看你的二级目录配置的什么了 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue+echart实现圆滑折线图

    vue+echart实现圆滑折线图

    这篇文章主要为大家详细介绍了vue+echart实现圆滑折线图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue+element搭建后台小总结 el-dropdown下拉功能

    vue+element搭建后台小总结 el-dropdown下拉功能

    这篇文章主要为大家详细介绍了vue+element搭建后台小总结,el-dropdown下拉功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • VUE多层路由嵌套实现代码

    VUE多层路由嵌套实现代码

    这篇文章主要为大家详细介绍了VUE多层路由嵌套的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Vue.js系列之vue-router(上)(3)

    Vue.js系列之vue-router(上)(3)

    这篇文章主要介绍了Vue.js系列之vue-router(上)(3)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)

    Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)

    下面小编就为大家带来一篇Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Vuex之Action的使用方法详解

    Vuex之Action的使用方法详解

    这篇文章主要介绍了Vuex之Action的使用方法详解,Action 类似于 mutation ,不同在于Action 提交的是 mutation,而不是直接变更状态,
    Action 可以包含任意异步操作,需要的朋友可以参考下
    2023-11-11
  • vue中怎样让函数只执行一次

    vue中怎样让函数只执行一次

    这篇文章主要介绍了vue中怎样让函数只执行一次问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • vue项目中使用骨架屏的方法

    vue项目中使用骨架屏的方法

    在页面加载数据之前,有一段空白时间,要么用loading加载,要么就用骨架屏,本文主要介绍了vue项目中使用骨架屏的方法,感兴趣的可以了解一下
    2021-05-05
  • 源码分析Vue.js的监听实现教程

    源码分析Vue.js的监听实现教程

    这篇文章主要通过源码分析介绍了Vue.js的监听实现,文中通过示例代码介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • vue项目接口管理,所有接口都在apis文件夹中统一管理操作

    vue项目接口管理,所有接口都在apis文件夹中统一管理操作

    这篇文章主要介绍了vue项目接口管理,所有接口都在apis文件夹中统一管理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08

最新评论