详解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参数的小问题
Mar 02 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
Oct 13 Javascript
JavaScript中的作用域链和闭包
Jun 30 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
javascript中字体浮动效果的简单实例演示
Nov 18 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
bootstrap confirmation按钮提示组件使用详解
Aug 22 Javascript
vue实现图片上传预览功能
Dec 23 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 Javascript
js闭包的9个使用场景
Dec 29 Javascript
vue-router懒加载的3种方式汇总
Feb 28 Vue.js
微信小程序实现点击图片旋转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.ini中文版(1)
2006/10/09 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
Django视图扩展类知识点详解
2019/10/25 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
开水果连锁店创业计划书
2013/12/29 职场文书
运动会解说词50字
2014/01/18 职场文书
女娲补天教学反思
2014/02/05 职场文书
优秀学生事迹材料
2014/02/08 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
施工安全责任书
2014/04/14 职场文书
鉴定评语大全
2014/05/05 职场文书
股票投资建议书
2014/05/19 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
工作总结与自我评价
2014/09/18 职场文书
2016年少先队活动总结
2016/04/06 职场文书
Pandas加速代码之避免使用for循环
2021/05/30 Python
MySQL中order by的使用详情
2021/11/17 MySQL
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS