详解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函数代码
Apr 17 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
jQuery之自动完成组件的深入解析
Jun 19 Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
js中定义一个变量并判断其是否为空的方法
May 13 Javascript
微信小程序  wx.request合法域名配置详解
Nov 23 Javascript
利用D3.js实现最简单的柱状图示例代码
Dec 09 Javascript
JavaScript获取中英文混合字符串长度的方法示例
Feb 04 Javascript
Thinkjs3新手入门之添加一个新的页面
Dec 06 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
Aug 08 Javascript
微信小程序实现canvas分享朋友圈海报
Jun 21 Javascript
Vue 请求传公共参数的操作
Jul 31 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
第十一节--重载
2006/11/16 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
浅谈重写window对象的方法
2014/12/29 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
JavaScript学习笔记之惰性函数示例详解
2017/08/27 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
python爬取网易云音乐评论
2018/11/16 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
Python元组常见操作示例
2019/02/19 Python
python绘制地震散点图
2019/06/18 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
意大利单身交友网站:Meetic
2020/07/12 全球购物
心得体会怎么写
2013/12/30 职场文书
国培远程培训感言
2014/03/08 职场文书
党建示范点实施方案
2014/03/12 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
事业单位年度考核评语
2014/12/31 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android