详解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 相关文章推荐
Javascript - HTML的request类
Jul 15 Javascript
js脚本学习 比较实用的基础
Sep 07 Javascript
jQuery 插件 将this下的div轮番显示
Apr 09 Javascript
一些相见恨晚的 JavaScript 技巧
Apr 25 Javascript
window.parent与window.openner区别介绍
Apr 12 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
Mar 12 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
Nov 18 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
Javascript实现代码折叠功能
Aug 25 Javascript
原生js实现简单的Ripple按钮实例代码
Mar 24 Javascript
weui中的picker使用js进行动态绑定数据问题
Nov 06 Javascript
JavaScript实现简单的计算器
Jan 16 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
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
url decode problem 解决方法
2011/12/26 PHP
PHP数组函数知识汇总
2016/05/12 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python Django 创建应用过程图示详解
2019/07/29 Python
Python绘图实现显示中文
2019/12/04 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
医学专业毕业生个人求职信
2013/12/25 职场文书
领导调研接待方案
2014/02/27 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
导游词之江西赣州
2019/10/15 职场文书
java实现对Hadoop的操作
2021/07/01 Java/Android
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技