详解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 相关文章推荐
js 字符串转化成数字的代码
Jun 29 Javascript
基于dom编程中 动态创建与删除元素的使用
Apr 17 Javascript
选择复选框按钮置灰否则按钮可用
May 22 Javascript
60行js代码实现俄罗斯方块
Mar 31 Javascript
谈一谈JS消息机制和事件机制的理解
Apr 14 Javascript
jQuery事件对象的属性和方法详解
Sep 09 jQuery
vue实现组件之间传值功能示例
Jul 13 Javascript
vue基于v-charts封装双向条形图的实现代码
Dec 09 Javascript
详解JavaScript修改注册表的方法
Jan 05 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
May 12 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 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
IIS6的PHP最佳配置方法
2007/03/19 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
javascript编程起步(第三课)
2007/02/27 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
微信小程序实现签字功能
2019/12/23 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
python 文件与目录操作
2008/12/24 Python
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
教师实习自我鉴定
2013/12/11 职场文书
《火烧云》教学反思
2014/04/12 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
工作说明书格式
2014/07/29 职场文书
打架检讨书
2015/01/27 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
公历12个月名称的由来
2022/04/12 杂记
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers