详解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 相关文章推荐
javascript dom追加内容实现示例
Sep 21 Javascript
jQuery的选择器中的通配符使用介绍
Mar 20 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
Oct 16 Javascript
微信小程序 require机制详解及实例代码
Dec 14 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
Dec 28 Javascript
angularjs中的$eval方法详解
Apr 24 Javascript
详解vue 实例方法和数据
Oct 23 Javascript
微信小程序wx.previewImage预览图片实例详解
Dec 07 Javascript
微信小程序wx.request拦截器使用详解
Jul 09 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 Javascript
layui 中select下拉change事件失效的解决方法
Sep 20 Javascript
微信小程序激励式视频广告组件使用详解
Dec 06 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可逆加密/解密函数分享
2012/09/25 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
JAVASCRIPT keycode总结
2009/02/04 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
python 不关闭控制台的实现方法
2011/10/23 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
求职简历中的自我评价分享
2013/12/08 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
企业员工辞职信范文
2015/05/12 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书