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 相关文章推荐
javascript 出生日期和身份证判断大全
Nov 13 Javascript
JS 文件大小判断的实现代码
Apr 07 Javascript
理解Javascript_06_理解对象的创建过程
Oct 15 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
js实现点击图片自动提交action的简单方法
Oct 16 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
jQuery实现拖动剪裁图片作为头像
Dec 28 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
Jun 30 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
Nov 14 Javascript
js作用域和作用域链及预解析
Apr 11 Javascript
Vue-cli3项目引入Typescript的实现方法
Oct 18 Javascript
Vue 组件的挂载与父子组件的传值实例
Sep 02 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防注入代码
2010/04/07 PHP
将php数组输出html表格的方法
2014/02/24 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
JS中表单的使用小结
2014/01/11 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
pytyon 带有重复的全排列
2013/08/13 Python
php使用递归与迭代实现快速排序示例
2014/01/23 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
Python递归函数定义与用法示例
2017/06/02 Python
python绘制热力图heatmap
2020/03/23 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
Python如何读写二进制数组数据
2020/08/01 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
教育系毕业生中文求职信范文
2013/10/06 职场文书
通信生自我鉴定
2014/01/18 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
护士辞职信怎么写
2015/02/27 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
爱国之歌(8首)
2019/09/29 职场文书
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python