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 相关文章推荐
php图像生成函数之间的区别分析
Dec 06 Javascript
代码触发js事件(click、change)示例应用
Dec 13 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
Dec 08 Javascript
js ajaxfileupload.js上传报错的解决方法
May 05 Javascript
漫谈JS引擎的运行机制 你应该知道什么
Jun 15 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
JavaScript实现窗口抖动效果
Oct 19 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
Apr 26 Javascript
Vue Router中应用中间件的方法
Aug 06 Javascript
JavaScript实现图片放大预览效果
Nov 02 Javascript
Ajax是什么?Ajax高级用法之Axios技术
Apr 21 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 intval的测试代码发现问题
2008/07/27 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
军训自我鉴定
2013/12/14 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
python爬取某网站原图作为壁纸
2021/06/02 Python
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python