Vue项目服务器部署之子目录部署方法


Posted in Javascript onMay 12, 2019

Vue项目尤其是基于.vue单文件格式的项目部署,在build成js文件后发布到服务器上,一般都是通过nginx反向代理到跟文件目录后直接访问,然而由于很多时候没办法使用更多的子域名(比如微信公众号只能有一个域名),所以急需将服务器部署到子目录。本经验以一次成功的系统部署为例,讲解子目录方式部署Vue工程。

首先介绍一下Poi,我们的项目没有使用webPack进行前端工程项目管理,使用了Poi进行管理:Develop web apps with no build configuration until you need.也就是说Poi对webpack进行了封装,0配置开发Web应用。可以使用poi.config.js文件配置poi的配置,也可以直接在package.json中进行配置。

Vue项目服务器部署之子目录部署方法

执行npm run dev相当于执行poi,执行npm run dist相当于执行poi build.执行poi build打包后,会将static目录下的资源拷贝到dist目录,其他的js和css会自动压缩成.js 和.css并且注入到index.html中。

Vue项目服务器部署之子目录部署方法

poi项目如果需要打包到子目录,必须设置homePage为子目录。这是第一步

Vue项目服务器部署之子目录部署方法

第二步,必须将index.html中其他非Vue部分的资源增加子目录的前缀,包括网站的icon.

Vue项目服务器部署之子目录部署方法

第三步保证Css文件中的资源路径为相对路径。

Vue项目服务器部署之子目录部署方法

第四步,需要修改vueRouter中的base为子目录。

Vue项目服务器部署之子目录部署方法

然后执行npm run dev 也就是npm build.观察打包后的index.html,css文件等。

Vue项目服务器部署之子目录部署方法

Vue项目服务器部署之子目录部署方法

然后配置nginx到二级目录:       

 location  /ticket {           alias /root/java/ticket/dist/;           try_files $uri $uri/ @rewrites;        }        location @rewrites {          rewrite ^/(ticket|sign|reimburse)/(.+)$ /$1/index.html last;        }这里$1对应url中的ticket,由于我这里有多个项目共用了rewrite所以逻辑或了三个,如果只有一个子目录,使用^/(ticket)/(

然后配置nginx到二级目录:        location  /ticket {           alias /root/java/ticket/dist/;           try_files $uri $uri/ @rewrites;        }        location @rewrites {          rewrite ^/(ticket|sign|reimburse)/(.+)$ /$1/index.html last;        }这里$1对应url中的ticket,由于我这里有多个项目共用了rewrite所以逻辑或了三个,如果只有一个子目录,使用^/(ticket)/(.+)$,这里切记要把ticket扩起来。

这里切记要把ticket扩起来。

项目部署成功!

Javascript 相关文章推荐
JavaScript的Cookies
Jan 16 Javascript
初识javascript 文档碎片
Jul 13 Javascript
为Extjs加加速(javascript加速)
Aug 19 Javascript
中文字符串截取的js函数代码
Apr 17 Javascript
js浮动图片的动态效果
Jul 10 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
Dec 04 Javascript
node.js中的fs.fchown方法使用说明
Dec 16 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
Oct 24 Javascript
JS中数组重排序方法
Nov 11 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
elementUI table表格动态合并的示例代码
May 15 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
Nov 05 Javascript
vue配置接口域名方法总结
May 12 #Javascript
详解babel升级到7.X采坑总结
May 12 #Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
May 12 #Javascript
vue轻量级框架无法获取到vue对象解决方法
May 12 #Javascript
使vue实现jQuery调用的两种方法
May 12 #jQuery
React优化子组件render的使用
May 12 #Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 #Javascript
You might like
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
浅谈php自定义错误日志
2015/02/13 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
php微信开发自定义菜单
2016/08/27 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
django 自定义用户user模型的三种方法
2014/11/18 Python
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
python3实现windows下同名进程监控
2018/06/21 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
人力资源总监工作说明
2014/03/03 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
售房委托书
2014/08/30 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
2015年工商所工作总结
2015/05/21 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang