vue项目使用history模式,打包部署到服务器根目录与二级目录的方法,防止刷新后出错

在vue 打包上线后, 如果我们使用的路由模式是 history 模式, 那么, 我们刷新其中的子页面的时候, 会出现错误

解决这个问题的方法, 最简单的方法就是使用 hash 模式的路由
但是 hash 模式的路径对seo 不友好, 本人也不喜欢

所以我们就使用 history 模式, 并且让其刷新时还不会出错
一、部署到根目录
这个方式比较简单,和你正常打包配置方式一模一样。

  1. 打包时,vue.config.js中配置publicPath=’/'即可
  2. nginx配置:
location / {
            try_files $uri $uri/ @router;
            index  index.html index.htm;
        } 
location @router {
            rewrite ^.*$ /index.html last;
        }

二、部署到服务器二级目录
比如, 我的二级目录是 /huang/
在这里插入图片描述
我的站点根目录是 public 目录, 它的二级目录中有一个 huang 目录, 我准备把打包后的文件放在 huang 目录下

  1. vue 项目中代码的配置
    vue.config.js
    在这里插入图片描述
    rotuer.js 配置
    在这里插入图片描述

nginx配置:

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vue2中,如果要在部署使用路由的history模式,并且要将应用部署二级目录中,需要进行以下配置。 首先,在vue项目根目录下找到并打开`vue.config.js`文件,如果没有则需要新建一个。 然后,在`vue.config.js`文件中进行如下配置: ```javascript module.exports = { publicPath: '/二级目录名称/' } ``` 其中,`二级目录名称`即你希望应用部署在的二级目录的名称,例如如果希望部署在`www.example.com/myapp/`下,则`二级目录名称`应为`myapp`。 接下来,在路由配置文件中,通常是`src/router/index.js`文件中,需要设置`base`选项,指定应用的基础 URL。 ```javascript import Vue from 'vue' import Router from 'vue-router' import Home from '@/views/Home.vue' Vue.use(Router) export default new Router({ mode: 'history', base: '/二级目录名称/', routes: [ { path: '/', name: 'Home', component: Home } ] }) ``` 在这里,将`mode`设置为`history`,表示使用history模式;将`base`设置为`'/二级目录名称/'`,与之前的配置保持一致。 这样,在部署项目时,将整个项目文件夹拷贝至服务器二级目录中,并配置好服务器的相关环境,就可以通过访问`www.example.com/二级目录名称/`来访问应用了。 需要注意的是,使用history模式需要服务器的支持,例如针对Apache服务器,需要配置`mod_rewrite`模块,以确保应用能够正确处理路由。如果你使用的是其他类型的服务器,可以查阅相关文档来了解如何配置。 以上就是在vue2中使用路由的history模式部署二级目录中的方法。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A黄俊辉A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值