You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js中v-bind无法加载本地图片问题求助

解决Vue循环中本地图片无法加载的问题

问题核心:本地图片的相对路径在v-bind动态绑定中未被Webpack正确解析,导致资源路径错误;而CDN链接是绝对路径,所以能正常加载。以下是几种可行的解决办法:

方法1:用require()包裹本地路径

通过require()让Webpack识别并处理本地资源,修改数据列表如下:

export default {
  data: () => ({
    skillTech: [
      { title: "HTML5", rating: 4, logo: "https://cdn-icons-png.flaticon.com/512/732/732212.png" },
      { title: "CSS3", rating: 4, logo: require("../assets/css.svg") }, // 替换为对应文件名
      { title: "JavaScript", rating: 4, logo: require("../assets/js.svg") },
      { title: "Vue.js", rating: 3, logo: require("../assets/vue.svg") },
    ],
  })
}

注意:确保../assets/目录下存在对应技术的图标文件,你当前代码里统一写的html.svg,记得改成对应文件名。

方法2:将图片移到public目录,使用绝对路径

把图片放到项目根目录的public文件夹(比如public/assets/css.svg),然后用根路径访问:

export default {
  data: () => ({
    skillTech: [
      { title: "HTML5", rating: 4, logo: "https://cdn-icons-png.flaticon.com/512/732/732212.png" },
      { title: "CSS3", rating: 4, logo: "/assets/css.svg" },
      { title: "JavaScript", rating: 4, logo: "/assets/js.svg" },
      { title: "Vue.js", rating: 3, logo: "/assets/vue.svg" },
    ],
  })
}

此方式下,Webpack不会处理public内的资源,直接以根路径访问即可。

方法3:提前导入图片资源

在脚本开头先导入所需图片,再赋值给logo字段:

import cssIcon from "../assets/css.svg"
import jsIcon from "../assets/js.svg"
import vueIcon from "../assets/vue.svg"

export default {
  data: () => ({
    skillTech: [
      { title: "HTML5", rating: 4, logo: "https://cdn-icons-png.flaticon.com/512/732/732212.png" },
      { title: "CSS3", rating: 4, logo: cssIcon },
      { title: "JavaScript", rating: 4, logo: jsIcon },
      { title: "Vue.js", rating: 3, logo: vueIcon },
    ],
  })
}

内容的提问来源于stack exchange,提问作者LotoLo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:45:33