当前位置:首页 > 技术文章 > 正文内容

问题:vue项目打包后,放到二级目录无法访问的解决方案

zonemu2个月前 (07-12)技术文章15

一、背景

  • 实现多个Vue子项目合并发布到同一个nginx
  • 每个子项目一个目录

二、现象

  • 项目在开发环境中正常运行
  • 打包上传到nginx根目录的下一级,就会出现问题

三、解决

这个问题是由于Vue是从nginx的根目录开始查找组件导致的。所以需要修改路由的查找起点。直接上代码了

  • 1、重新指定路由的base url , base: process.env.BASE_URL, 其中 BASE_URL 是自定义的路径. 下面是router目录下的index.js 中的关键代码: route.js
const router = new VueRouter({
  base: process.env.BASE_URL,  // 注意这里的配置,BASE_URL会在后面定义
  mode: "history",
  routes
})

2、定义 BASE_URL

vue.config.js 关键代码

const path = require('path')
//1、-----------注意这里:BASE_URL 的值/bigs 被添加的环境变量 process.env 中
const BASE_URL = process.env.NODE_ENV === 'production'?'/bigs':'/'
const resolve = dir => {
  return path.join(__dirname, dir)
}

module.exports = {
  //2、-------------------------------------------注意这里设置 publicPath
  publicPath: BASE_URL,                    
  chainWebpack: config => {
    config.resolve.alias
      .set('_c', resolve('src/components')) 
  },
}

至此,打包后上传到nginx的 /html/bigs 目录即可 ,只能上传到此目录


四、这个问题是我2020年遇到时处理过一次,后来在我开发“网上邻居”这个软件时,又遇到了,竟然所我搜到以以前自己写的文章,而且还没有发现是自己写的,特此记录,希望下次再遇到能快速解决吧!!!

相关文章

2024前端面试真题之—VUE篇(前端面试题vuex)

添加图片注释,不超过 140 字(可选)1.vue的生命周期有哪些及每个生命周期做了什么? beforeCreate是new Vue()之后触发的第一个钩子,在当前阶段data、methods、com...

Vue3,父组件子组件传值,provide(提供)和inject(注入)传值

父组件向子组件传值父子组件传递数据时,通常使用的是props和emit,父向子传递使用props,子向父传递使用emit。子组件接收3种方式// 1、简单接收 props:["title...

零基础开始学 Web 前端开发,有什么建议?(附视频教程)

WEB前端看似简单,其实不然,要学的知识点很多很杂,对于零基础学习前端的小伙伴来说,一份详细的前端学习知识点大纲尤为重要。下面,话不多说,直接上干货(全网最全,没有之一)。PS:文末有福利(全阶段视频...

迁移GIT仓库并带有历史提交记录(git 迁移仓库)

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。//...

基于Docker构建安装Git/GitLab,以及制作springboot工程镜像

今天给大家分享的是《领先的开源自动化服务器Jenkins的应用实战》之基于Docker安装构建Git/GitLab版本控制与代码云存储的场所;使用Git管理项目,springboot工程制作镜像知识体...

一键看懂Html5,就这么简单(查看html的app推荐)

HTML5是WEB开发世界的一次重大的改变,事实上不管你是否喜欢,它都是代表着未来趋势。曾几何时,当HTML5出现在web端开发领域的时候,并没有引起太多人的注意,究其原因,一方面是它还没有被广泛的支...