1.发布项目到Tomcat或Nginx的步骤
修改项目配置文件config/index.js中的变量assetsPublicPath值(有两处):
修改前:assetsPublicPath: '/',
修改后:assetsPublicPath: './',
编译vue项目。cmd命令行窗口,进入项目的根目录,执行命令npm run build:
查看编译后的项目,在根目录下存在文件夹dist,该目录下的文件就是需要发布的项目文件:
以发布项目到Tomcat为例,在Tomcat的webapps目录下创建要发布的项目名称对应的文件夹(例如test),然后将dist目录下的文件全量拷贝到新建的文件夹下:
启动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(看成是需要访问的项目名称)是我们要使用到的变量:
修改index.html,引入request.js:
引入之后,变量便可以全局使用:
接下来按照上一节的内容打包,可以发现request.js文件位于外部:
之后将项目发布到不同的服务器时,只需要编辑该文件,修改其中的ip地址即可。
3.项目发布后Element UI的icon图标找不到
使用element框架icon的时候,开发环境下图标可以正常显示,但是打包完以后出现小方块:
解决办法是找到build/utils.js文件,添加如下配置:
添加之后,重新打包即可正常显示:
4.项目打包上线后样式不生效
vue项目中使用element-ui框架的时候,可能需要自定义其中的部分样式,例如在App.vue中修改指定元素的样式,使全局生效:
本地运行样式正常,但实际部署上线的时候样式混乱:
原因是在main.js中先引入了App.vue,后引入Element UI:
以上打包过程,先对App.vue中的样式进行打包,后对Element UI插件样式打包,如果Element UI样式中有同名的类,则会覆盖掉App.vue中的样式。也就是说如果在全局样式中修改了Element UI的样式,需要把全局样式文件的引入放在Element UI样式后:
修改后重新打包即可正常展示。