详解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分页
Jun 07 Javascript
几个高效,简洁的字符处理函数
Apr 12 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
Bootstrap Img 图片样式(推荐)
Dec 13 Javascript
Vuex 进阶之模块化组织详解
Jan 12 Javascript
移动web开发之touch事件实例详解
Jan 17 Javascript
使用async await 封装 axios的方法
Jul 09 Javascript
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 Javascript
详解用async/await来处理异步
Aug 28 Javascript
vuex入门最详细整理
Mar 04 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
php学习笔记之面向对象编程
2012/12/29 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
python文件操作相关知识点总结整理
2016/02/22 Python
使用Python绘制图表大全总结
2017/02/11 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
课程设计心得体会
2013/12/28 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
Python 正则模块详情
2021/11/02 Python
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android