vue-cli项目布署问题解决:空白页、静态资源文件404错误、refrenceError:promise未定义(部分浏览器不支持ES6语法)

(前言:文章记录vue-cli项目打包使用IIS布署遇到的几个错误及解决方式)

 

首先简单理解webpack打包:

个人理解:项目开发中我们构建 "低耦合高内聚" 的组件/模块来代码重用、降低项目复杂性,提升开发效率。而webpack 就是一个静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会通过递归地构建一个依赖关系图,进而将所有所有项目模块打包成一个或多个 bundle.js文件( bundle.js文件不能被浏览器识别,需要使用babel转换器转换成浏览器可识别的js文件),通过webpack打包后的主文件可以找到你项目当中的所有依赖文件。

 

 

1、错误:项目打包布署后一片空白

分析原因:打开打包文件 dist/index.html 可以看到,index.html里边的内容都是通过script标签引入的,当打包路径配置错误,打开就会是空白的。

解决方式:

修改打包build配置文件路径,选择打开 config/index.js文件,将build对象中的assetsPublicPath属性值改为 ‘./ ’,目的是使打包后的项目index.html获取到依赖文件,修改后如下图:

 

注意事项:router/index.js路由配置里边默认模式是hash,如果改成了history模式的话,打开也会是一片空白。如果使用history模式的话,需要你在服务端加一个覆盖所有的情况的候选资源:如果URL匹配不到任何静态资源,则应该返回一个index.html,这个页面就是你app依赖页面。

 

 

2、错误:静态资源文件404 NOT Founed

分析原因:项目中出现png、woff、tiff等文件404 NOT Founed,这里以找不到homr_bg.png文件为例分析,可以在项目cmd命令窗口看到打包记录,也可以在dist/static/img 下看到打包文件

检查css文件中对该图片的引用路径出现错误如下图,在服务器根目录获取不到static文件夹,所有文件夹下png 404错误

 

解决方式:在build/utils文件中的下图所示位置修改 publicPath:属性值为 '../../',如下图,这样打包的样子就变成../../static的样子了,就可以解决我们的问题。

 

 

 

3、错误:refrenceError:promise未定义(部分浏览器不支持ES6语法)

项目布署过程中,chrome内核浏览器下都能正常显示页面,在IE内核浏览器下弹框提示 "refrenceError:promise未定义"

分析原因:低版本浏览器内核版本太低,无法解析 ES2015最新的一些语法。babel是一个js转译器,Babel主要会转换ES6和ES7语句为ES5语句。一般搭建项目时webpack会在最外层配置一个.babelrc文件用于默认解析ES2015(es6)中的特殊语法(例如: let,const,class等),而babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。所以需要使用babel-polyfill

解决方式:安装babel-polyfill

3.1、npm命令安装:

npm install --save-dev babel-polyfill

3.2、在入口main.js文件引入:

import babel-polyfill

3.3、在build文件夹下找到webpack.base.conf.js.修改入口方式:

entry: {app: ["babel-polyfill", "./src/main.js"]},

3.4、再依赖一个插件解决ES6/ES7高级语法兼容:

npm install --save-dev babel-preset-es2015

 


参考链接:https://blog.csdn.net/webKris/article/details/83625673

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553970.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单地使用webpack进行打包,一些常见打包错误

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或…

Vue-cli 项目优化归纳(打包、源码、用户体验)

前言:vue-cli项目开发打包部署后,存在问题有首次首页加载过慢,包括加载缓慢问题,需要进行vue项目优化。下面是对vue性能优化方法进行归纳,后面会对方法进行亲测。 主要包括:代码包打包优化、编码优化、用户…

JS中的prototype、__proto__与constructor,原型和原型链

理解原型的几个关键点: 1、所有的引用类型(数组、函数、对象)可以自由扩展属性(除null以外); 2、所有的引用类型(对象)都有一个’_ _ proto_ _属性(也叫隐式原型,它是一个普通的对…

彻底理解cookie,session,token

转载自:https://www.cnblogs.com/moyand/p/9047978.html 发展史 1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新…

硬盘基本知识(磁头、磁道、扇区、柱面),格式化容量计算

计算差: 在购买硬盘之后,细心的人会发现,在操作系统当中硬盘的容量与官方标称的容量不符,都要少于标称容量,容量越大则这个差异越大。标称40GB的硬盘,在操作系统中显示只有38GB;80GB的硬盘只有7…

常用校验码(奇偶校验码、海明校验码、CRC校验码)

转载自:https://www.cnblogs.com/VersionP1/p/7779251.html ,作者: FunnyOne 常用校验码(奇偶校验码、海明校验码、CRC校验码) 一、奇偶校验码二、海明校验码三、CRC校验码 计算机系统运行时,各个部之间要进行数据交…

原码、反码、补码、移码

版权声明:本文为CSDN博主「刘水镜」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/liushuijinger/article/details/7429197 原码: 如果机器字长为n&#…

【计算机系统】指令流水线

前言 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各部件同时处理是针对不同指令而言的,比如说,指令流水线把一条指令分为取指、分析和执行3部分,可以同时处理取指和分析,但是不能同时处理一个部…

Gantt(甘特图)与PERT(项目计划评审技术)图,项目关键路径和松弛时间

甘特图也叫做进度管理图。 他是一种简单的水平条形图,它以日历为基准描述项目任务,水平轴表示日历时间线,每一个线条表示一个任务,任务名称垂直的列在左边列中,图中的线条的起点和终点对应水平轴上的时间,…

学习阮一峰Javascript模块化编程,requireJS使用

使用背景NOW: 网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式。 项目需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的…

阮一峰的JavaScript 的 this 原理

一、问题的由来 学懂 JavaScript 语言,一个标志就是理解下面两种写法,可能有不一样的结果。 var obj {foo: function () {} };var foo obj.foo;// 写法一 obj.foo()// 写法二 foo()上面代码中,虽然obj.foo和foo指向同一个函数,…

计算机基础:IP地址,子网掩码,默认网关,DNS服务器

如图各项IP地址、子网掩码、默认网关、DNS服务器分别都代表什么意思 (一)IP地址 IP是32位二进制数据,通常以十进制表示,并以“.”分隔。IP地址是一种逻辑地地址,用来标识网络中一个个主机,IP有唯一性&#…

解决vue的{__ob__: observer}取值问题

vue编码中经常出现获取到的数据是:{__ob__: Observer} 格式的,详细如下 可能导致后续数据操作错误,如何获取其中的数值呢 解决方法如下: 将返回的数据data先转换为JSON字符串形式,然后再从字符串形式转换成JSON格式JS…

软考计算机基础:存储系统

软考计算机存储系统笔记: 存储器分类: 1、按存储位置分为内存和外存; 2、按存储材料分为磁存储(使用磁存储介质)、半导体存储(分为双极型和MOS型,根据数据是否需要刷新可以分为静态SRAM存储器…

vscode统计代码行数,前端开发配置、快捷键使用

1、统计代码行数 使用场景是项目年终统计行数。 实现:在需要统计得文件夹右键“在文件夹中查找“ ,后输入筛选得正则表达式 ^b*[^:b#/].*$ (注意右边小图标都点亮) 这里顺便将自己使用vscode进行前端开发环境配置归纳一下,便于自己以后快速…

vue-cli打包后怎么修改服务器地址实践有效

前言:公司vue项目使用 npm run build 打包生成dist文件部署后,当需要修改服务器端地址时候就又需要重新配置url并打包部署,为简化部署测试工作,想实现通过修改服务器地址的配置文件来实现修改打包后的项目服务器地址。 项目基于vu…

干净高效的搜索引擎

找一个干净好用的搜索引擎,好文转载备忘 为什么不用百度搜索引擎,估计一百个人会有一百个理由。 百度最让人诟病的还是它的竞价排名,其实要赚钱无可厚非,但这吃相……前几天看到知乎上有人发了张百度和谷歌搜索的对比图&#xf…

vue-router区分hash模式和history模式

总结: hash模式是我们在url后面添加一个#xx触发事件。尽管浏览器没有请求服务器,但是页面状态和url已经关联起来了,这就是所谓的前端路由,单页应用的标配。 history模式下浏览器地址不规整(没有#)&#x…

Vue 打包前需修改的配置,解决白屏问题

vue-cli项目和electron-vue项目打包运行都有遇到的白屏问题,下面记录打包前需要确认的配置 第一: config文件夹下的index.js 中的文件中的 assetsPublicPath :‘/’ 改为’./’ 不然的话会是空白页,记住,是build那块。…

electron-vue解决打包错误、无法调用出开发者工具(亲测有效)

错误1: unresolved node modules vue... 或 not found modules..的错误 解决方式:依赖的模块错误,删除node_module文件夹后,尽量用npm install而不是淘宝镜像cnpm安装 错误2: Cannot create symlinks (on Windows hos…