1.发布项目到Tomcat或Nginx的步骤

修改项目配置文件config/index.js中的变量assetsPublicPath值(有两处):

修改前:assetsPublicPath: '/',
修改后:assetsPublicPath: './',

VUE2项目在工作中遇到的几个打包和发布问题_UI

编译vue项目。cmd命令行窗口,进入项目的根目录,执行命令npm run build:

VUE2项目在工作中遇到的几个打包和发布问题_IP_02

查看编译后的项目,在根目录下存在文件夹dist,该目录下的文件就是需要发布的项目文件:

VUE2项目在工作中遇到的几个打包和发布问题_App_03

VUE2项目在工作中遇到的几个打包和发布问题_IP_04

以发布项目到Tomcat为例,在Tomcat的webapps目录下创建要发布的项目名称对应的文件夹(例如test),然后将dist目录下的文件全量拷贝到新建的文件夹下:

VUE2项目在工作中遇到的几个打包和发布问题_UI_05

VUE2项目在工作中遇到的几个打包和发布问题_UI_06

启动Tomcat服务器,测试访问地址(以test为例):http://127.0.0.1:8080/test/index.html,其中IP地址(127.0.0.1)和端口号(8080)结合实际情况修改。

2.项目打包的时候外置配置文件

在实现vue的时候,必定会请求后台数据,请求后台数据必定会用到对应的(后台)IP地址。如果vue程序需要部署在不同的服务器上,每次部署之前都需要修改后台IP地址然后打包,效率非常低。本节就来解决这个问题,并且设置变量可以全局访问。

在static目录下新建request.js(有的版本是在public目录下创建),其中的server_ip(看成是后端的请求地址)和check(看成是需要访问的项目名称)是我们要使用到的变量:

VUE2项目在工作中遇到的几个打包和发布问题_IP_07

修改index.html,引入request.js:

VUE2项目在工作中遇到的几个打包和发布问题_App_08

引入之后,变量便可以全局使用:

VUE2项目在工作中遇到的几个打包和发布问题_UI_09

接下来按照上一节的内容打包,可以发现request.js文件位于外部:

VUE2项目在工作中遇到的几个打包和发布问题_App_10

之后将项目发布到不同的服务器时,只需要编辑该文件,修改其中的ip地址即可。

3.项目发布后Element UI的icon图标找不到

使用element框架icon的时候,开发环境下图标可以正常显示,但是打包完以后出现小方块:

VUE2项目在工作中遇到的几个打包和发布问题_IP_11

解决办法是找到build/utils.js文件,添加如下配置:

VUE2项目在工作中遇到的几个打包和发布问题_IP_12

添加之后,重新打包即可正常显示:

VUE2项目在工作中遇到的几个打包和发布问题_IP_13

4.项目打包上线后样式不生效

vue项目中使用element-ui框架的时候,可能需要自定义其中的部分样式,例如在App.vue中修改指定元素的样式,使全局生效:

VUE2项目在工作中遇到的几个打包和发布问题_UI_14

本地运行样式正常,但实际部署上线的时候样式混乱:

VUE2项目在工作中遇到的几个打包和发布问题_IP_15

原因是在main.js中先引入了App.vue,后引入Element UI:

VUE2项目在工作中遇到的几个打包和发布问题_IP_16

以上打包过程,先对App.vue中的样式进行打包,后对Element UI插件样式打包,如果Element UI样式中有同名的类,则会覆盖掉App.vue中的样式。也就是说如果在全局样式中修改了Element UI的样式,需要把全局样式文件的引入放在Element UI样式后:

VUE2项目在工作中遇到的几个打包和发布问题_UI_17

修改后重新打包即可正常展示。

VUE2项目在工作中遇到的几个打包和发布问题_IP_18