最近一直在尝试对 Vue 项目进行打包和发布,发现通过 npm run build 打包生成的 dist 文件不能直接放到服务器下面进行部署,否则会出现以下问题:

究其原因是,无法正确找到相关 js 文件的路径 。网上查找了很多的解决方案,大多建议修改路由模式(mode:' history ')和发布的文件路径(publicPath:' ./ '),但由于脚手架版本的原因,一直找不到相应的配置文件,这里使用的是最新版本的 VueCLI 5 创建的项目,官方简化了许多文件的配置信息(隐藏起来了)。经过多次尝试,最终实现了 Vue 项目在本地服务器 Tomcat 下的部署!

方法一:

1、修改配置信息:router/index.js 文件和 vue.config.js 文件

router/index.js

const router = new Router({
  mode:'history',//修改路由模式为 history
  routes:routes
})

vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  publicPath:'./' //添加配置信息
})

打包运行 

npm run build

最终生成的文件目录为:

 

将整个 dist 文件夹放到 Tomcat 目录下的 webapps 目录下

 启动 Tomcat 服务,打开文件目录或者输入网址  http://localhost:8080/dist/

运行成功。

方法二:

 修改配置文件 vue.config.js 直接添加如下代码

module.exports = {
  publicPath:"/supermall/",
  outputDir: "dist", 
}

然后修改路由配置 router/index.js 添加以下信息:

const router = new Router({
  mode: 'history',
  base:"/supermall/",
  routes: routes
})

打包运行: npm run build,将生成的d ist 文件夹重命名为 supermall 放到 webappp 下访问即可!

补充:

如果有小伙伴使用 vue-cli 3.x 以下版本创建 vue 项目,则文件目录下不会有 vue.config.js 文件,老版本的文件目录下可以通过以下配置实现 vue 项目在 tomcat 服务器下的部署:

1.找到 config 文件夹下的 index.js 文件,修改 assetsPublicPath:'/目标文件夹名称/'

 2.配置路由信息 router/index.js,主要添加以下信息,base:'/目标文件夹名称/'

打包运行: npm run build

将生产的 dist 文件夹修改名称为 ‘目标文件夹名称’ 放到 tomcat 的 webapp文件目录下即可访问:

Logo

前往低代码交流专区

更多推荐