详解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 相关文章推荐
网页里控制图片大小的相关代码
Jun 13 Javascript
15 个 JavaScript Web UI 库
May 19 Javascript
浅谈EasyUI中编辑treegrid的方法
Mar 01 Javascript
详解JavaScript ES6中的模板字符串
Jul 28 Javascript
深入浅析JavaScript面向对象和原型函数
Feb 06 Javascript
Javascript之面向对象--方法
Dec 02 Javascript
BootStrap数据表格实例代码
Sep 13 Javascript
小程序实现带年月选取效果的日历
Jun 27 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
Jul 03 Javascript
JavaScript剩余操作符Rest Operator详解
Jul 20 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
Nov 12 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
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
js三种排序算法分享
2012/08/16 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
替换python字典中的key值方法
2018/07/06 Python
对python中的高效迭代器函数详解
2018/10/18 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
优质的学校老师推荐信
2013/10/28 职场文书
医学院四年学习生活的自我评价
2013/11/06 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
投资意向协议书
2015/01/29 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
心理健康教育主题班会
2015/08/13 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA