详解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 相关文章推荐
Jquery 实现Tab效果 思路是js思路
Mar 02 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
Oct 23 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
Oct 29 Javascript
jquery插件validate验证的小例子
May 08 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
Mar 25 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
Nov 08 Javascript
jQuery中live()方法用法实例
Jan 19 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
Aug 24 Javascript
基于jquery的on和click的区别详解
Jan 15 jQuery
深入Vue-Router路由嵌套理解
Aug 13 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
Nov 27 Javascript
jQuery实现的解析本地 XML 文档操作示例
Apr 30 jQuery
前端常见跨域解决方案(全)
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中array_merge与array+array的区别
2013/06/21 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
Python中random模块生成随机数详解
2016/03/10 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
kali中python版本的切换方法
2019/07/11 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
详解Django CAS 解决方案
2019/10/30 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
工作表现评语
2014/01/19 职场文书
厕所文明标语
2014/06/11 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
MySQL插入数据与查询数据
2022/03/25 MySQL