详解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关于select的相关操作说明
Jan 13 Javascript
基于jQuery UI CSS Framework开发Widget的经验
Aug 21 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
JavaScript获取DOM元素的11种方法总结
Apr 25 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
jquery插件EasyUI中form表单提交实例分享
Jan 11 Javascript
JS代码实现根据时间变换页面背景效果
Jun 16 Javascript
AngularJs基本特性解析(一)
Jul 21 Javascript
domReady的实现案例
Nov 23 Javascript
JS+HTML5实现图片在线预览功能
Jul 22 Javascript
Express本地测试HTTPS的示例代码
Jun 06 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
Sep 21 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
超级简单的发送邮件程序
2006/10/09 PHP
纯php打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
php单链表实现代码分享
2016/07/04 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
python使用urlparse分析网址中域名的方法
2015/04/15 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
性能测试工程师的面试题
2015/02/20 面试题
外贸采购员求职的自我评价
2013/11/26 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
静心口服夜广告词
2014/03/20 职场文书
卫生系统先进事迹
2014/05/13 职场文书
消防安全宣传口号
2014/06/10 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
工作自我评价范文
2015/03/05 职场文书
狂人日记读书笔记
2015/06/30 职场文书
2016情人节宣传语
2015/07/14 职场文书
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库