详解vue-cli与webpack结合如何处理静态资源


Posted in Javascript onSeptember 19, 2017

处理静态资源

你也许会注意到vue-cli与webpack结合的项目中,我们通常会有两个静态资源的路径:src/assets和static/,他们两者的区别是什么呢?

打包的资源

为了回答这个问题,我们首先要明白Webpack是如何处理静态资源的。在*.vue组件里,所有的templates和CSS模块都被vue-html-loader和css-loader解析来查找路径URL。

举个例子,在<img src"./logo.png">和背景background: url(./logo.png),”./logo.png”是一个相对路径,会被Webpack当做一个依赖加载。

但是因为logo.png并不是JavaScript,所以如果被当成一个依赖的花,我们需要通过url-loader和file-loader来解析它。这个模板已经为你配置了相应的loader,所以你通常不用担心相对路径的部署问题。

即使这些资源有可能在构建过程中被内联/拷贝/重命名,他们也是源码重要组成部分。这就是为什么我们建议单独在/src文件夹里放置静态资源,如同其他的资源文件夹。

事实上,你都不必把他们全放在/src/assets,你可以根据模块/组件来组织利用他们。比如说,你可以把任一组件放到他们自己的目录,并在该目录下存放静态资源。

资源引入规则

相对路径,比如 ./assets/logo.png会被解析成模块依赖。它们会被一个基于你Webpack输出配置的自动生成URL替代。

没有前缀的路径,比如assets/logo.png,同相对路径,转义成./assets/logo.png

有~前缀的路径。 ~被认为是一个模块请求,同require('some-module/image.png')。根路径,比如/assets/log.png

在JavaScript得到资源路径

computed: {
 background () {
  return require('./bgs/' + this.id + '.jpg')
 }
}

这个资源路径同样会被file-loader处理然后返回处理后的路径。而且Webpack会一次性加载该bgs目录下的所有图片。

“真实的”静态资源

与此相对的,static/中的文件全都不会被Webpack处理。它们将被直接拷贝到目标文件夹,引用这些文件需要使用绝对路径。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js的event详解。
Sep 06 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
Dec 27 Javascript
一个不错的仿携程自定义数据下拉选择select
Sep 01 Javascript
jQuery中andSelf()方法用法实例
Jan 08 Javascript
javascript中Object使用详解
Jan 26 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
JavaScript中的return语句简单介绍
Dec 07 Javascript
jQuery 中的 DOM 操作
Apr 26 Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
前端常见跨域解决方案(全)
Sep 19 #Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 #Javascript
JavaScript数组去重的多种方法(四种)
Sep 19 #Javascript
一步步教你利用Canvas对图片进行处理
Sep 19 #Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 #Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 #Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 #Javascript
You might like
php var_export与var_dump 输出的不同
2013/08/09 PHP
php中hashtable实现示例分享
2014/02/13 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
一段实时更新的时间代码
2006/07/07 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
Js获取事件对象代码
2010/08/05 Javascript
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
利用python修改json文件的value方法
2018/12/31 Python
HTML的form表单和django的form表单
2019/07/25 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
Python Http请求json解析库用法解析
2020/11/28 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
《小池塘》教学反思
2014/02/28 职场文书
运动会广播稿100字
2014/09/14 职场文书
2014年实验室工作总结
2014/12/03 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书