详解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中的prototype属性实例分析说明
Aug 09 Javascript
juqery 学习之三 选择器 子元素与表单
Nov 25 Javascript
jquery实现心算练习代码
Dec 06 Javascript
javascript各浏览器中option元素的表现差异
Apr 07 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
Jan 06 Javascript
node.js中的http.createServer方法使用说明
Dec 14 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
MVVM框架下实现分页功能示例
Jun 14 Javascript
通过webpack引入第三方库的方法
Jul 20 Javascript
angular4自定义表单控件[(ngModel)]的实现
Nov 23 Javascript
小程序实现短信登录倒计时
Jul 12 Javascript
浅谈layui 数据表格前后台传值的问题
Sep 12 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
phplock(php进程锁) v1.0 beta1
2009/11/24 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
javascript Window及document对象详细整理
2011/01/12 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
python视频按帧截取图片工具
2019/07/23 Python
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
会计主管岗位职责
2014/01/03 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
房屋买卖协议样本
2014/11/16 职场文书
贷款担保书
2015/01/20 职场文书
httpclient调用远程接口的方法
2022/08/14 Java/Android