前端-VUE-资源引用-记录V1.1
1.问题:
background-image: url(./bg02.jpg);
开发环境可用,正式环境找不到图片
解决方法:
(vue-cli2)修改build/utils,添加return ExtractTextPlugin的 publicPath: '../../'
(vue-cli3)修改config/index.js,将其中的assetsPublicPath值改为’./’
原因:
webpack打包时资源路径换了
2.问题:
let url = "@/assets/images/carousel/logo.svg"
require(url)//报错
解决方法:
require("@/assets/images/carousel/"+url); //正确
原因:
如果require中传入的是个变量,它有可能是计算机系统中的任何目录下的任何文件,那么在打包静态资源时它有可能会将你的电脑整个磁盘遍历一遍
webpack解析资源规则
会被 webpack 作require('./image.png')处理
相对路径(以 . 和 @ 开头,非/开头都是相对路径)。诸如 src="..."、background: url(...) 和 CSS @import 的资源
不会处理
public 目录下或通过绝对路径被引用(/)
注:处理v-bind标记的路径
:src="'./assets/images/02.jpg'" 不会处理
:src="require('./assets/images/03.jpg')"
引入静态态资源(static文件夹)
.vue中的任何地方都只要使用../这种相对路径的方式引入
引入动态资源(需要打包的/src/assets中的资源)
vue-loader加载资源规则,所有静态资源打包后存在static目录
template部分,(vue-loader,没必要手动调用require)
1.绝对路径 src="/src/assets/image/login/title.png"
渲染后 src="/src/assets/image/login/title.png"
2.以 . 开头 src="./titlea.png"
渲染后 src="/static/img/titlea.1e9fa570.png"
3.以 @ 开头 src="@/assets/image/login/title.png"
渲染后 src="/static/img/title.1e9fa570.png"
@认配置了将 @ 指向 /src
4.以 ~ 开头 src="~[npm包名]/xxx/logo.png"
渲染后 src="/static/img/logo.2f53e458.png"
style部分的路径处理
css-loader的配置:url为true时,则意味着可以将url中的字符串通过require()
1.绝对路径 background-image: url("/src/assets/image/login/title.png");
渲染后 background-image: url("/src/assets/image/login/title.png");
2.以 . 开头 background-image: url("./titlea.png");
渲染后 background-image: url(/static/img/titlea.1e9fa570.png);
3.以 @ 开头 不支持路径
4.以 ~ 开头 @import url('~@/assets/css/childcpm.css');
background-image: url("~[npm包名]/logo.png");
background-image: url("~@/assets/image/login/bg.png");
渲染后 background-image: url(/static/img/logo.e05643fc.png);
background-image: url(/static/img/bg.1d997ea3.png);
script部分的路径处理必须用@import的方式引入
1.直接将图片引入为模块
require imgUrl from "../assets/test.png"
import imgUrl from "../assets/test.png"
2.将imgUrl放在数据里
data(){return {imgUrl:require("../assets/test.png")}}
3.在生命周期函数中设置
created(){
let urlTemp = "assets/test.png";
this.imgUrl = require("@/"+urlTemp)
}
posted on 2021-03-11 16:15 xcc_20190625 阅读(128) 评论(0) 收藏 举报
浙公网安备 33010602011771号