前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >避坑指北:vue 使用 history 路由

避坑指北:vue 使用 history 路由

原创
作者头像
Qwe7
发布2022-02-12 18:22:43
3940
发布2022-02-12 18:22:43
举报
文章被收录于专栏:网络收集网络收集

背景

在部署 vue 项目时,路由模式默认使用哈希 (hash) 模式,但是由于某些原因,要求使用 history 模式。但是对于现在的部署环境则遇到了一个问题。首先是目录:

CODE

代码语言:javascript
复制
site ---- 项目根目录
 ├── siteA ---- 项目A
 │   └── index.html
 └── siteB ---- 项目B
     └── index.html

即项目放在了同一个根目录下,那么此时我们就需要调整 vue 的一些配置。具体如下

Vue 项目配置

路由设置

JAVASCRIPT

代码语言:javascript
复制
export default [{
    path: '/siteA',
    name: 'siteARoot',
    component: () => import('@/views/siteA/index'),
    children: [
        {
            path: 'index',
            name: 'Index',
            meta: {
                title: 'siteA'
            },
            component: () => import('@/views/siteA/index')
        }
    ]
}]

即路由需要包含此项目部署时所需要存放的目录名。

打包配置

打包配置时由于使用了 history 模式,那么 publicPath 就需要指定绝对路径。

JSON

代码语言:javascript
复制
{
    publicPath: /siteA/
}

这里设置的绝对路径即项目配置时的目录名,可通过环境变量进行动态修改。

Nginx 配置

NGINX

代码语言:javascript
复制
server {
    listen        10085;
    server_name  localhost;
    root   "D:/code/test/site/";
    location /siteA {
        index index.html;
        try_files $uri $uri/ /siteA/index.html;
    }
    location /siteB {
        index index.html;
        try_files $uri $uri/ /siteB/index.html;
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • Vue 项目配置
  • 路由设置
    • 打包配置
    • Nginx 配置
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    http://www.vxiaotou.com