详解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获取路径设计源码
May 22 Javascript
jQuery插件zepto.js简单实现tab切换
Jun 16 Javascript
javascript顺序加载图片的方法
Jul 18 Javascript
详解JavaScript编程中正则表达式的使用
Oct 25 Javascript
Jquery基础之事件操作详解
Jun 14 Javascript
全面解析Bootstrap表单样式的使用
Sep 09 Javascript
JavaScript实现星星等级评价功能
Mar 22 Javascript
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
js拖动滑块和点击水波纹效果实例代码
Oct 16 Javascript
React 使用recharts实现散点地图的示例代码
Dec 07 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
Jun 21 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
Feb 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上传图片、删除图片实现代码
2010/05/12 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
PHP 实现重载
2021/03/09 PHP
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
python利用不到一百行代码实现一个小siri
2017/03/02 Python
django项目搭建与Session使用详解
2018/10/10 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
Python range与enumerate函数区别解析
2020/02/28 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
Python logging模块handlers用法详解
2020/08/14 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
村捐赠仪式答谢词
2014/01/21 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
2015年教学工作总结
2015/04/02 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
签证工作证明模板
2015/06/15 职场文书
交通安全温馨提示语
2015/07/14 职场文书
运动会班级前导词
2015/07/20 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技