详解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 对象成员的可见性说明
Oct 16 Javascript
jQuery设置与获取HTML,文本和值的简单实例
Feb 26 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 Javascript
jQuery Validate验证框架经典大全
Sep 23 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
May 04 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
Aug 18 Javascript
微信小程序引用公共js里的方法的实例详解
Aug 17 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
Dec 22 Javascript
详解微信小程序input标签正则初体验
Aug 18 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
Mar 29 Javascript
node.js中事件触发器events的使用方法实例分析
Nov 23 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插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
php7 新增功能实例总结
2020/05/25 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
python处理cookie详解
2014/02/07 Python
Python3基础之基本运算符概述
2014/08/13 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
python包的导入方式总结
2021/03/02 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
环境监测与治理技术专业求职信
2014/07/06 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
七年级作文之环保作文
2019/10/17 职场文书
vue实现滑动解锁功能
2022/03/03 Vue.js