详解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 相关文章推荐
jquery iframe操作详细解析
Nov 20 Javascript
一段非常简单的js判断浏览器的内核
Aug 17 Javascript
js生成的验证码的实现与技术分析
Sep 17 Javascript
jquery处理页面弹出层查询数据等待操作实例
Mar 25 Javascript
freemarker判断对象是否为空的方法
Aug 13 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
Jul 18 Javascript
解析jQueryEasyUI的使用
Nov 22 Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 Javascript
vue-prop父组件向子组件进行传值的方法
Mar 01 Javascript
JS中的回调函数实例浅析
Mar 21 Javascript
浅谈js闭包理解
Apr 01 Javascript
解决layui laydate 时间控件一闪而过的问题
Sep 28 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 win下Socket方式发邮件类
2009/08/21 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
Python中的集合类型知识讲解
2015/08/19 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
写给妈妈的感谢信
2015/01/22 职场文书
旅游项目合作意向书
2015/05/08 职场文书
小学教师见习总结
2015/06/23 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
Vue如何实现组件间通信
2021/05/15 Vue.js