vue.js打包之后可能会遇到的坑!


Posted in Javascript onJune 03, 2018

前言

最近在用webpack+vue写项目,经过几天的熬夜加班改BUG,终于把基本的框架给写完了,后面只要加一些小功能就可以了,太好吧!先来npm run build 打包出来看看吧!

vue.js打包之后可能会遇到的坑!

打包中...,我们用本地服务器打开看一下。

额,不看不知道,一看吓一跳,坑咋这么多呢!但是作为一名积极向上的IT从业者,填坑吧。

1.打包之后没有被渲染出来

vue.js打包之后可能会遇到的坑!

怎么回事,刚打开就告诉我啥也没有,这是要搞事情的前奏啊!,我们看一下错误信息,告诉我路径有问题,默默的看一下自己的地址栏和自己的文件所在目录,原来是我的打包文件没有放到根目录下,这个时候我们可以把我们的两个文件放到根目录下,但是作为一名有个性的IT人士,当然要看有没有其他方法。从上面的路径中隐隐约约有点预感,static是直接相对于根目录,说明这有可能打包的时候,有可能设置了绝对路径,如果我改成相对路径,那不就可以了吗。

vue.js打包之后可能会遇到的坑!

我们去看一下项目文件下的config>index.js找到里面的build下的assetsPublicPath:'/',把它改成assetsPublicPath:'./',加个小点表示相对路径,不加表示绝对路径。npm run build运行。成功。

2.路由(router)mode:'history',导致页面不能渲染问题

vue.js打包之后可能会遇到的坑!

地址栏的那个#怎么那么让我不舒服呢!对于有轻度强迫症的我来说,这是不能忍不了的。

我们在项目打包前,开发项目时(npm start),在vueRouter里设置mode:"history".可以去掉#号。

这里强行解释一番:

路由(router)默认 hash 模式,使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载,因为对于正常的页面来说,更换URl一定是会导致页面的更换的, 而只有更换URL中的查询字符串和hash值的时候才不会重新加载页面。

路由(router)的history模式,这种模式充分利用了history.pushState API来完成URL的跳转而不需要重新加载页面。没有#号。

npm run build打包中....

什么鬼,为什么我的路由(router)部分没有被渲染出来,这就是history的坑了,解决方法一,会到以前的hash模式;解决方法二,设置routes里的路由name。

vue.js打包之后可能会遇到的坑!

这是因为路由(router)无法找到路径中的组件,所以也就无法渲染了。只需要修改 src > router > index.js,在每个path后加上组件名称就行了,这样就可以了。

这里有个小问题:

vue.js打包之后可能会遇到的坑!

vue.js打包之后可能会遇到的坑!

为了我们的时间考虑,还是放到根目录吧!

首页没有问题了,逐个链接测试一下。

vue.js打包之后可能会遇到的坑!

vue.js打包之后可能会遇到的坑!

这是什么鬼,路径和其他图片路径一样,图片也存在啊,为啥你就是这么傲娇,就是报错。来看一下控制台。

vue.js打包之后可能会遇到的坑!

结合之前的./原来是相对路径问题,是我的开发文件assets下多个图片文件夹。

vue.js打包之后可能会遇到的坑!

这个时候为了开发项目的可读性和维护性。只能默默的把前面改的相对路径'./'改回绝对路径'/'了。这就尴尬了,额额额,大家就当没看到哈!

暂时遇到这些坑,这是自己写项目的有感而发,希望对看过这篇文章的人有所帮助。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js中Math之random,round,ceil,floor的用法总结
Dec 26 Javascript
JavaScript获取当前页面上的指定对象示例代码
Feb 28 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
May 16 Javascript
微信小程序中使用javascript 回调函数
May 11 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
vue-cli开发环境实现跨域请求的方法
Apr 07 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
Oct 29 Javascript
php结合js实现多条件组合查询
May 28 Javascript
Layui表格行工具事件与数据回填方法
Sep 13 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
Sep 14 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
Jun 02 #Javascript
vue之将echart封装为组件
Jun 02 #Javascript
React学习笔记之高阶组件应用
Jun 02 #Javascript
浅谈node中的cluster集群
Jun 02 #Javascript
详解AngularJS 过滤器的使用
Jun 02 #Javascript
简化vuex的状态管理方案的方法
Jun 02 #Javascript
深入了解javascript 数组的sort方法
Jun 01 #Javascript
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
2013/08/21 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
python3 kubernetes api的使用示例
2021/01/12 Python
物业管理员岗位职责范文
2013/11/25 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
事业单位请假制度
2014/01/13 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
介绍信模板
2015/01/31 职场文书
初中重阳节活动总结
2015/05/05 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
医学会议开幕词
2016/03/03 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书