Vue应用部署到服务器的正确方式


Posted in Javascript onJuly 15, 2017

本文介绍了Vue应用部署到服务器,分享给大家,希望此文章对各位有所帮助。

很多时候我们发现辛辛苦苦写的VueJs应用经过打包后在自己本地搭建的服务器上测试没有什么问题,但真正放在服务器上后,会发现或多或少的问题,比如:页面出现空白现象,获取资源路径不对等,我相信以VueJs为技术栈来进行前端开发的小伙伴或多或少都会遇到这样的问题,我也遇到过,那现在我们就来一一解决这样的问题。

如何打包

  1. 基于Vue-Cli,通过npm run build来进行打包的操作

如何部署

  1. 将打包出来的资源,基于Vue-Cli的一般是dist目录下有static目录和index.html文件,可以直接将这两个文件扔到服务端
  2. 但有时候,我们会直接将dist文件扔到服务端

出现的问题

  1. 打包到服务器后,出现资源引用路径的问题
  2. 打包到服务器后,出现空白页的问题
  3. 打包到服务器后,出现引入的css的type被拦截转换为"text/plain"问题
  4. 打包到服务器后,出现路由刷新404的问题

出现资源引用路径的解决方案

一般这个问题是由于在webpack配置打包发布的目录造成的。

情况一.如果是将static与index.html直接放在服务器根目录,也就是说,当前的应用访问的网址如:http://www.xxx.com

解决办法:

配置输出的publiPath:"/"或者"./"

情况二.直接将打包后的dist文件放在了服务器的根目录,也就是如果需要访问当前的应用,访问的网址

如:http://www.xxx.com/dist

解决办法:

首先需要在创建路由实例中增加:

const router = new VueRouter({
mode: 'history',
base: '/mobile/',
scorllBehavior: () => ({
y: 0
}),
routes
});

然后再打包发布目录:

publiPath:"/dist/"或者"http://www.xxx.com/dist/"

出现由于路由的history模式下刷新当前路由出现404的问题

今天做的应用发布到服务器上,发现当刷新当前路由的时候,就会出现404的状况,其实这是因为当刷新当前页面时候,所需要访问的资源在服务器上找不到,也就是说,我们在VueJs开发应用的过程中,设置路由的路径不是真实存在的路径,并且使用了history模式。

解决办法

需要后端进行配合,参考https://router.vuejs.org/en/essentials/history-mode.html

出现引入的css的type被拦截转换为"text/plain"问题

这是我开发过程中遇到的感觉很奇葩的问题,我们都知道,一般基于Vue-Cli,通过WebPack打包后的资源不需要更改什么。可是我发现,当我把代码进行上传后,输入网址,看见的页面把我吓坏了,发现所有样式不存在了,第一反应就是认为是自己在进行打包配置过程中出现了什么问题,然后通过fillder进行调试,发现css文件是正确获取到的

 Vue应用部署到服务器的正确方式

可以看到,这个css文件的type被拦截转换为"text/plain",这时候,我又把相关的配置文件看了两遍,后面发现,真的是日了狗了,让我哭一会儿。先上图

Vue应用部署到服务器的正确方式

我擦,原来是服务器端返回的类型居然是"text/plain"。这个问题很好解决,把这图直接给后端,是不是感觉被坑了/(ㄒoㄒ)/~~。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
input输入框鼠标焦点提示信息
Mar 17 Javascript
angularjs客户端实现压缩图片文件并上传实例
Jul 06 Javascript
js实现汉字排序的方法
Jul 23 Javascript
用javascript实现自动输出网页文本
Jul 30 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
从零学习node.js之简易的网络爬虫(四)
Feb 22 Javascript
vue实现动态数据绑定
Apr 28 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
详谈js的变量提升以及使用方法
Oct 06 Javascript
redux处理异步action解决方案
Mar 22 Javascript
js+html5实现侧滑页面效果
Jul 15 #Javascript
angular2 ng build部署后base文件路径问题详细解答
Jul 15 #Javascript
Angular2关于@angular/cli默认端口号配置的问题
Jul 15 #Javascript
js编写简单的计时器功能
Jul 15 #Javascript
深入理解angular2启动项目步骤
Jul 15 #Javascript
js+html5实现复制文字按钮
Jul 15 #Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 #Javascript
You might like
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
Python生成短uuid的方法实例详解
2018/05/29 Python
Python实现多属性排序的方法
2018/12/05 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
python 实现图片批量压缩的示例
2020/12/18 Python
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
毕业自我评价范文
2013/11/17 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
react中的DOM操作实现
2021/06/30 Javascript
python可视化之颜色映射详解
2021/09/15 Python
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
Golang Web 框架Iris安装部署
2022/08/14 Python