最近一直在尝试对 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',//修改路由模式为 historyroutes: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文件目录下即可访问:

Vue 项目的成功发布和部署相关推荐

  1. [vue] 分析下vue项目本地开发完成后部署到服务器后报404是什么原因呢?

    [vue] 分析下vue项目本地开发完成后部署到服务器后报404是什么原因呢? 1.检查nginx配置,是否正确设置了资源映射条件: 2.检查vue.config.js中是否配置了publicPath ...

  2. vue项目启动成功浏览器不显示

    场景:vue项目启动成功,无任何报错,但是浏览器却一直加载,页面始终是空白. 如果你的项目用到了element-ui的标签页组件el-tabs组件,那么大概率是此组件引起的浏览器卡死问题. 可以现将e ...

  3. tomcat部署vue项目(成功版)

    1.tomcat介绍 2.下载tomcat 3.启动tomcat 4.打包vue项目 5.tomcat部署vue项目 1.tomcat简介 tomcat 是免费的web服务器.不使用tomcat也可以 ...

  4. vue项目 构建 打包 发布 三部曲

    一.vue项目的创建 1.首先第一肯定是要有Node.js及npm这个不多说了 2.安装脚手架 此时可以直接浏览-但是现在肯定有很多小白想将他发布到gitHub上并可以浏览,使用vue全家桶制作自己的 ...

  5. Java和Vue项目打包并进行服务器部署

    两周前我刚刚入职实习的时候,后端的几个同事看到我需要学习如何把项目进行部署,都围过来教我怎么部署,我感觉学习到了很多,因此,记录一下学习的笔记. 当然了,这些部署是建立在已经配置好tomcat(后端服 ...

  6. vue项目美食杰 -- 发布菜谱

    不知不觉间,vue美食杰项目已经实现了很多了,我都有点始料未及呢,今天进行的部分呢,是项目中的发布菜谱功能,在这个页面中,我们会学习到前后端的交互,Element-ui的使用等等... 先看下效果图: ...

  7. Vue项目启动成功,但是在浏览器访问缺异常,提示“网页无法正常运作‘“

    近期在项目开发中,在调整登录认证模块,发现项目启动成功,本地也正常打开,但是发布服务的时候,发现网页无法正常打开,并提示"该网页无法正常运作",如图1.1 图1.1 在确保其他代码 ...

  8. Vue 项目创建并发布

    1.# 全局安装 vue-cli npm install vue-cli -g // 如果还没安装 2.# 创建一个基于 webpack 模板的新项目 vue init webpack myproje ...

  9. Vue项目登录成功后返回到原操作页面

    登录超时或者由于其它原因,造成必须重新登录的情况,相信大家都见过这种场景,比较偷懒的办法是登陆成功厚直接回到主页面,但其实我们有更好的解决办法. 作为vue的标配,我们可以利用axios的全局拦截器做 ...

最新文章

  1. asp.net core学习笔记
  2. pythony语法小练习
  3. 启明云端分享|干货来了,怎么用ESP32-S2驱动断码屏呢?更多干货欢迎关注启明云端CSDN技术社区!
  4. 端口被占用,怎么解决?
  5. 兵乓球- 经典街机游戏-python小游戏源码下载
  6. 董明珠的“接班人”出现了?22岁董明珠女秘书火了!本人回应...
  7. Hue中Sqoop导数报错Could not load db driver class: com.mysql.jdbc.Driver
  8. cout 格式化输出
  9. tomcat的目录结构
  10. Android学习笔记27:网格视图GridView的使用
  11. C++基础知识点(3)
  12. 【Unity3D应用案例系列】Unity3D中实现《3D照片墙》
  13. python代码检查工具(静态代码审查)
  14. 电脑如何重装系统之使用PE优盘启动工具安装win10操作系统
  15. 电脑版微信打开内置浏览器
  16. shc在嵌入式Linux上的使用
  17. 工作流引擎的流程业务表设计
  18. MNIST手写数字识别之MLP实现
  19. 二维离散余弦变换(DCT)与二维离散反余弦变换(IDCT)C语言实现
  20. 不敢相信自己的眼睛,完全只用Photoshop做出的美女!

热门文章

  1. python怎么判断倍数_检查整数及其两倍数是否存在 python3
  2. G笔试题-2012年9月25日
  3. linux小红帽实验心得,小红帽的故事心得 看过之后90%的人都会写
  4. NPL系列之分词常用原则以及算法(三)
  5. Javaweb Session与Cookie(自定义Session)
  6. 嵌入式是做什么的可就业方向是怎样的?
  7. linux负载均衡之关于负载均衡
  8. 数字图像处理与MATLAB 第四章学习笔记
  9. 解释器,一个交互式外壳
  10. 数据库-mysql(windows安装)