详解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之大字符串的连接的StringBuffer 类
May 08 Javascript
自己整理的一个javascript日期处理函数
Oct 16 Javascript
jQuery使用fadein方法实现渐出效果实例
Mar 27 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 Javascript
vue 注册组件的使用详解
May 05 Javascript
VUE 实现滚动监听 导航栏置顶的方法
Sep 11 Javascript
如何为vue的项目添加单元测试
Dec 19 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
May 16 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 Javascript
LayUi数据表格自定义赋值方式
Oct 26 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
Feb 21 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 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
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
javascript操作数组详解
2014/12/17 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
Python中bisect的用法
2014/09/23 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
工程专业求职自荐书范文
2014/02/18 职场文书
yy生日主持词
2014/03/20 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
酒店开业庆典策划方案
2014/05/28 职场文书
企业活动策划方案
2014/06/02 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS