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 写类方式之十
Jul 05 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
Dec 11 Javascript
用jquery等比例控制图片宽高的具体实现
Jan 28 Javascript
基于javascript编写简单日历
May 02 Javascript
angularjs 源码解析之scope
Aug 22 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
Feb 18 Javascript
JQuery实现图片轮播效果
May 08 jQuery
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 Javascript
vue删除html内容的标签样式实例
Sep 13 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
Jan 09 Javascript
JavaScript实现HTML导航栏下拉菜单
Nov 25 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 字符串 小常识
2009/06/05 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
js中的 || 与 && 运算符详解
2018/05/24 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
JS防抖和节流实例解析
2019/09/24 Javascript
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
python 字典访问的三种方法小结
2019/12/05 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
什么是.net
2015/08/03 面试题
统计学教授推荐信
2014/09/18 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
Python制作动态字符画的源码
2021/08/04 Python
分享Python获取本机IP地址的几种方法
2022/03/17 Python