详解vue2.0 资源文件assets和static的区别


Posted in Javascript onNovember 27, 2018

Webpacked 资源

我们首先需要理解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进行处理。 该模板已经配置好了这些loaders,所以你能够使用相对/模块路径时不需要担心部署的问题。

由于这些资源可能在构建的时候被内联/复制/重命名, 所以它们从本质上来说是你源码的一部分。这就是为什么我们建议将交由webpack处理的静态资源和其它源文件一样放在/src路径下面。

实际上,你甚至不需要把它们全都放在/src/assets路径下:你可以基于模块/组件的使用来组织文件结构。例如,你可以把每个组件和属于它的静态资源放在它自己的目录下。

资源处理规则

相对URL, ./assets/logo.png 将会被解释成一个模块依赖。它们会被一个基于你的Webpack输出配置自动生成的URL替代。

没有前缀的URL, assets/logo.png 将会被看成相对URL,并且转换成./assets/logo.png

前缀带~的URL 会被当成模块请求, 类似于require('some-module/image.png'). 如果你想要利用Webpack的模块处理配置,就可以使用这个前缀。例如,如果你有一个对于assets的路径解析,你需要使用<img src="~assets/logo.png">来确保解析是对应上的。

相对根目录的URL, /assets/logo.png 是不会被处理的.

测试总结:

1.采用相对路径,程序内部自己编写的样式和图片,一般放在assets文件夹下。

详解vue2.0 资源文件assets和static的区别

top.vue中要引入图片assets/images/home/photo.png,可以这样写img

<img src="../../assets/images/home/photo.png" />

本地dev渲染后,图片路径:(被打包放在静态文件夹static的img下了)

详解vue2.0 资源文件assets和static的区别

build项目后,打开后图片路径:(静态文件夹的相对路径)

详解vue2.0 资源文件assets和static的区别

2.采用webpack中的alias设置路径别名。

详解vue2.0 资源文件assets和static的区别

top.vue中可以这样调用:(图片放在static/images/home文件夹下)

<img src="~images/home/logo.png" />

项目dev后,也会被编译成:

详解vue2.0 资源文件assets和static的区别

个人感觉第一种更直观一些。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JMenuTab简单使用说明
Mar 13 Javascript
JS和JQ的event对象区别分析
Nov 24 Javascript
js改变style样式和css样式的简单实例
Jun 28 Javascript
JS动态给对象添加属性和值的实现方法
Oct 21 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
canvas实现动态小球重叠效果
Feb 06 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
May 18 Javascript
Angular如何在应用初始化时运行代码详解
Jun 11 Javascript
vue底部加载更多的实例代码
Jun 29 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
Feb 15 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
Aug 14 Javascript
vue3.0 的 Composition API 的使用示例
Oct 26 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
Nov 27 #Javascript
js canvas实现画图、滤镜效果
Nov 27 #Javascript
js canvas画布实现高斯模糊效果
Nov 27 #Javascript
video.js 一个页面同时播放多个视频的实例代码
Nov 27 #Javascript
Vue数据双向绑定的深入探究
Nov 27 #Javascript
微信小程序带动画弹窗组件使用方法详解
Nov 27 #Javascript
微信小程序实现日历功能
Nov 27 #Javascript
You might like
重置版战役片段
2020/04/09 魔兽争霸
PHP VS ASP
2006/10/09 PHP
php include的妙用,实现路径加密
2008/07/29 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
python定时执行指定函数的方法
2015/05/27 Python
Python内存读写操作示例
2018/07/18 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
人力资源行政经理自我评价
2013/10/23 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
离婚答辩状范文
2015/05/22 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server