vue的项目如何打包上线


Posted in Vue.js onApril 13, 2022

vue.js项目打包上线

最近一直坚持每个月写一个小的vue.js 开发的项目,最后开发完成后想到很久之前给别人回答的一个问题:vue的项目如何上线,当时有千奇百怪的回答,我在想,这些人都是肿了么,vue的官方都说了,这个框架只是做了view这一层,所以并不是把这些开发完的东西直接拷贝到服务器上,而且需要打包为静态文件上传服务器的。

这里我简单的列出这个过程

首先需要修改一下配置文件再打包,很多人都是遇到过打包后运行一片空白等等问题,这些问题主要就是路径的问题,所以需要修改config下面的index.js这个配置文件里选项:

vue的项目如何打包上线

上图中第一个要修改的就是静态文件的路径,打包后静态文件就在当前目录下,所以修改为./

第二个是环境设置为生产环境

修改好后打开cmd运行下面的命令打包即可:

vue的项目如何打包上线

注意下面的tip,告诉你这个打包后的文件需要放到服务器才能打开,不能直接使用浏览器打开,打包后的文件结构如下:

vue的项目如何打包上线

这时我们需要使用服务器的方式来访问index.html就可以了。这里可能很多人也会遇到一些问题,比如大家可能在开发的时候使用的proxytable来解决跨域的问题,这里就会没有数据了,这个需要自己通过服务器在解决一下才可以的,proxytable在这里只是为了方便大家开发的跨域解决方案。

vue.js打包之后遇到的坑

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

vue的项目如何打包上线

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

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

打包之后没有被渲染出来

vue的项目如何打包上线

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

vue的项目如何打包上线

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

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

vue的项目如何打包上线

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

我们在项目打包前,开发项目时(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的项目如何打包上线

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

这里有个小问题:

vue的项目如何打包上线

vue的项目如何打包上线

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

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

vue的项目如何打包上线

vue的项目如何打包上线

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

vue的项目如何打包上线

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

vue的项目如何打包上线

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
Vue router安装及使用方法解析
Dec 02 Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
vue中activated的用法
Jan 03 Vue.js
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
vue项目配置sass及引入外部scss文件
Apr 14 Vue.js
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 Vue.js
vue2的 router在使用过程中遇到的一些问题
Apr 13 #Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 #Vue.js
如何优化vue打包文件过大
Apr 13 #Vue.js
使用vue判断当前环境是安卓还是IOS
Apr 12 #Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 #Vue.js
vue数据字典取键值项目的字典问题
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
You might like
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
PHP图片水印类的封装
2017/07/06 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
python命令行参数sys.argv使用示例
2014/01/28 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
python第三方库学习笔记
2020/02/07 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
电力公司个人求职信范文
2014/02/04 职场文书
综治工作心得体会
2014/09/11 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
收入证明范本
2015/06/12 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
MySQL 角色(role)功能介绍
2021/04/24 MySQL
golang判断key是否在map中的代码
2021/04/24 Golang
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL