详解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 arguments.callee的应用代码
May 07 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
jQuery实现简单的日期输入格式化控件
Mar 12 Javascript
JavaScript合并两个数组并去除重复项的方法
Jun 13 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
Apr 22 Javascript
vue一步步实现alert功能
Jul 05 Javascript
详谈js原型继承的一些问题
Sep 06 Javascript
JS从非数组对象转数组的方法小结
Mar 26 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
ElementUI多个子组件表单的校验管理实现
Nov 07 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
Python常用内置函数总结
2015/02/08 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
学生档案自我鉴定
2013/10/07 职场文书
银行领导证婚词
2014/01/11 职场文书
普通党员整改措施
2014/10/24 职场文书
行政文员岗位职责
2015/02/04 职场文书
校长师德表现自我评价
2015/03/05 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
python中取整数的几种方法
2021/11/07 Python
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python