vue静态资源的引用(相对路径,绝对路径,@,~的一些笔记,以图片引入为例,含在线演示) | 您所在的位置:网站首页 › 文件路径中的相对路径与绝对路径的区别 › vue静态资源的引用(相对路径,绝对路径,@,~的一些笔记,以图片引入为例,含在线演示) |
前置
配合在线演示看更好~@在线演示地址
引入的方式
相对路径的引用
webpack的处理
路径以.开头,会被 webpack 处理在其编译过程中,所有诸如 例如,url(./image.png)会被编译为require("./image.png")而: 将会被编译到: h('img', { attrs: { src: require('./image.png') }}) 并且,会根据图片的大小来决定是否转化为base64编码图片 相对路径下的URL转换规则 如果 URL 以 . 开头,它会作为一个相对模块请求被解释且基于你的文件系统中的目录结构进行解析。 大白话就是哪里引入的,就相当与哪一个文件的路径![]() 示例如下 src/components/HelloWorld.vue 引入的就是src/components/img/28.jpg,参照于HelloWord.vue所在的路径,也就是以src/components为起始点,去寻找img目录下的28.jpg文件 绝对路径的表示是以URL为/开头的,或是省略了/或者是. 比如/images/foo.png就表示是一个绝对路径在vue当中 images/foo.png也表示一个绝对路径在vue当中 转换规则很简单,绝对路径的转换规则就是以public为起始点 ![]() 示例代码如下 在绝对路径的引用当中 src="/resource/img/pic1.png"和src="resource/img/pic1.png"引入的都是public/img/pic1.png文件src/components/HelloWorld.vue 上面代码的示例当中 src = "./img/28.jpg"和src="@/components/img/28.jpg"都是指向src/components/img/28.jpg的图片文件css里面,如果使用相对路径去引入图片,那没有什么区别,都会引入src/assets/26.jpg文件 .show-bg { /* 使用相对路径引入图片在css中 */ background-image: url("../assets/26.jpg"); }如果使用了绝对路径去引入图片,那么不添加~,就会报错 .show-bg { /* 使用相对路径引入图片在css中 */ /* background-image: url("../assets/26.jpg"); */ /* 使用绝对路径引入图片在css中 */ background-image: url("@/assets/26.jpg"); }所以需要添加下~就可以 .show-bg { /* 使用相对路径引入图片在css中 */ /* background-image: url("../assets/26.jpg"); */ /* 使用绝对路径引入图片在css中 */ background-image: url("~@/assets/26.jpg"); } data当中图片数据的引入 一开始我以为直接在data数据当中写图片路径就可以,然后循环,后面发现不可以 data() { return { name: "李白", imgList: [ "./assets/46.jpg", "./assets/47.jpg", "./assets/48.jpg"], }; }, 后面发现需要先在data当中引入才可以 data() { return { name: "李白", imgList: [ require("./assets/46.jpg"), require("./assets/47.jpg"), require("./assets/48.jpg")], }; }, 总结vue引入静态资源有相对路径和绝对路径的方式 相对路径是URL开头有. 绝对路径是URL开头为/或者省略不写 相对路径相对的是当前文件 绝对路径相对的是public目录 并且引入的时候URL开头为~的使用在css里面引入静态资源的时候 如果 URL 以 @ 开头会作为一个模块请求被解析。Vue CLI 默认会设置一个指向 src 的别名 @ 。 参考文章https://segmentfault.com/a/1190000021485662 https://segmentfault.com/a/1190000019495695 |
CopyRight 2018-2019 实验室设备网 版权所有 |