vue-cli 图片动态引入 怎么写呢?图片放在了assets 里面了。

<el-dialog :visible.sync="dialogVisibleImg"  title="查看商品详情" class="prodectData" :show-close="true">
    <img :src="dialogImg"style="width: 100%">
    <div class="language">
      <video :src="dialogVideo" controls></video>
    </div>     
</el-dialog>
  methods: {
    show(item) {
      var dialogImg;
      var dialogVideo;
      switch (item.bookId) {
        case 1186:
          dialogImg = import("../../assets/mathematics.png");
          dialogVideo =import("../../assets/video/mathvideo.mp4");
          break;
        case 1185:
          dialogImg = import("../../assets/language.png");
          dialogVideo =import("../../assets/video/chinesevideo.mp4");
          break;
        case 1172:
          dialogImg = import("../../assets/english.png");
          dialogVideo = import("../../assets/english.png");
          break;
        default:
      }
      self.dialogImg = dialogImg;
      self.dialogVideo = dialogVideo;
      self.dialogVisibleImg = true
    }
  },

同事把图片和视频放在了assets 里面了。
这样写,没有效果。。。怎么写呢?

阅读 5.1k
4 个回答

这样写,用import from的写法,代码亲测有效

<script>
import img1 from '../../assets/mathematics.png'
import img2 from '../../assets/language.png'
export default {
    methods: {
    show(item) {
      switch (item.bookId) {
        case 1186:
          dialogImg = img1;
          dialogVideo =img2;
          break;
        //省略代码
      }
      //省略代码
    }
  },
}
</script>

把图片写在dom里面,用你的show()控制v-show

先 var img1 = import('......')
再在case 里
dialogImg = img1

新手上路,请多包涵

vue-cli里默认是把纯静态资源放在static下的,参见dev-server.js里的这段代码
var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
app.use(staticPath, express.static('./static'))

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题