由于项目用了vue-cli,直接写本地路径会有问题vue
<img :src="'@/assets/images/activity/double9/coupon'+item.price+'.png'">
复制代码
编译后是 <img data-v-0343f1f6="" src="@/assets/images/activity/double9/coupon80.png">
webpack
正确写法:web
<img :src="require('@/assets/images/activity/double9/coupon'+item.price*10+'.png')">
或者
<img :src="activityImg"
let activityImg = require("./assets/images/activity/double9/popup-double9.png");
复制代码
这种写法能够正确引用带hash的图片路径vue-cli
.js
this.imgUrl='@/assets/images/no-result.png'
this.imgUrlFile=require(this.imgUrl)
.tpl
<img :src="require(imgUrl)">
<img :src="imgUrlFile">
// #2种写法都找不到图片,浏览器显示<img data-v-71871f69="" src="">
复制代码
官方文档:若是你的 request 含有表达式(expressions),会建立一个上下文(context),由于在编译时(compile time)并不清楚具体是哪个模块被导入。express
缘由:浏览器
解决:bash
// # 变量名加字符串 编译成功
this.imgUrl='images/no-result.png'
<img :src="require('@/assets/'+imgUrl+'.png')">
复制代码
或者定义require.context()ide