vue模板中对图片src的动态引入(路径)问题

pay attention: 书写本文时vue的版本还是2.X。

在做移动端项目时,底部导航的名称和图片习惯于用json文件中引入数据。而在vue项目中,当要在<template>中动态引入图片时,若直接从json文件中导入item.src字段为'assets/image/XX.png'的值到:src="XXX"中时,会出现图片404的情况。
如:
<a href="javascript:;" v-for="item in navList">
<img :src="item.src">
</a>
这么循环引入img图片,页面会报404,表明从指定的路径上去找是找不到图片的。

如何解决呢?

  1. 我们都知道,如果是import 或者 require 图片路径进来,将其保存为一个变量,然后再赋值到img标签上是没有问题的。有此可见,如果我们将json中的图片路径用import或者require的方式包装。如:src="require('assets/image/my.png')"。ok,找到解决办法了。但是我们无法在json文件中使用require或import。json是一种通用的跨平台的数据传输格式,它支持的是纯数据。好在我们可以用es6的方法,把数据存储为js文件然后export出去便可。要记住的是,此方法对于src目录下而言才是管用的。这里所谓的src是指要通过webpack打包的那个根目录。用这种方法实现,开发环境和生产环境打包都可以很好配置。

  2. 如果我们把静态图片资源存放在和src平级的目录(比如叫static)下,即不存放在webpack要打包的范围内,那么直接引入图片路径无需用import或require包装,这也是ok的。如<img src="/static/my.png" />。由于放在src目录外,它不被webpack打包进去,如此一来在部署到nginx服务器上时需要单独scp这个static目录。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 11,769评论 0 16
  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 10,842评论 1 32
  • 姓名:龚珊珊 公司:宁波大发化纤有限公司 《六项精进》301期感谢组学员 【日精进打卡第95天】 【知~学习】 《...
    Miss曲奇阅读 1,131评论 0 0
  • 今天楼主同寝室小美女发到群中一张图片,主意是抒发一下对小情侣公然卿卿我我的行为的鄙视,毕竟作为一名单身狗,也是伤不...
    菲子菲阅读 2,325评论 0 1
  • 上一篇我们说的是学习方法,但是有了学习方法有的人还是学不会、学不好。这一篇我们谈谈谈任务驱动学习。 有...
    Nancypower阅读 1,059评论 0 0