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

Vue项目动态图片加载失败求助:资源返回404错误

Vue动态加载图片404问题解决方法

问题根源

直接在数据里写@/assets/xxx这类字符串路径时,webpack/Vite不会自动解析别名和处理资源文件,最终浏览器请求的就是原字符串路径,导致服务器返回404错误。

分环境解决方案

1. Vue2 + Webpack 环境

定义图片路径时用require()包裹,让webpack提前处理资源并生成编译后的正确路径:

<script>
export default {
  name: 'Gallery',
  data() {
    return {
      galleryImages: [
        {
          path: require('@/assets/images/services/whitening/whitening1.png'),
          category: 'teeth-whitening',
          alt: '牙齿美白'
        },
        {
          path: require('@/assets/images/services/all6/all63.png'),
          category: 'all6',
          alt: 'All6项目'
        }
        // 其他图片按此格式添加
      ]
    };
  }
}
</script>

2. Vue3 + Vite 环境

Vite不支持require,改用new URL()方法生成可访问的正确路径:

<script setup>
const galleryImages = [
  {
    path: new URL('@/assets/images/services/whitening/whitening1.png', import.meta.url).href,
    category: 'teeth-whitening',
    alt: '牙齿美白'
  },
  {
    path: new URL('@/assets/images/services/all6/all63.png', import.meta.url).href,
    category: 'all6',
    alt: 'All6项目'
  }
  // 其他图片按此格式添加
];
</script>

模板部分无需修改

你的模板代码可以保持原样,处理后的page.path已经是浏览器可直接访问的路径:

<div class="row">
  <div v-for="(page, index) in paginatedImages" :key="index" class="col-lg-4 col-md-6">
    <div class="single-gallery">
      <img :src="page.path" :alt="page.alt">
    </div>
  </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:50:01