在Vue中,<img> 标签的 src 值

1. 直接指定 src 的值(适用于网络图片)

如果你使用的是网络图片(即图片的URL是完整的HTTP或HTTPS链接),可以直接指定 src 的值:

vue

复制

复制代码
<template>
  <div>
    <img src="https://example.com/your-image.jpg" alt="描述图片">
  </div>
</template>

这种方式非常简单,适用于图片已经托管在网络上。


2. 直接指定 src 的值(适用于本地图片)

如果你使用的是本地图片(即图片存放在项目的 src/assetspublic 目录中),直接指定 src 的值可能会导致图片无法正确加载。原因如下:

  • Vue CLI 项目默认会使用 Webpack 打包,而 Webpack 会将本地图片视为模块处理。

  • 如果你直接写 src="./assets/your-image.jpg",Webpack 不会正确解析路径,导致图片加载失败。

正确的做法:

你需要使用 requireimport 来引入图片,这样 Webpack 会正确处理路径。

vue

复制

复制代码
<template>
  <div>
    <img :src="imageUrl" alt="描述图片">
  </div>
</template>

<script>
export default {
  data() {
    return {
      imageUrl: require('@/assets/your-image.jpg') // 使用 require 引入图片
    };
  }
};
</script>

或者使用 import

vue

复制

复制代码
<template>
  <div>
    <img :src="imageUrl" alt="描述图片">
  </div>
</template>

<script>
import imageUrl from '@/assets/your-image.jpg'; // 使用 import 引入图片

export default {
  data() {
    return {
      imageUrl
    };
  }
};
</script>

3. 将图片放在 public 目录

如果你不想通过 Webpack 处理图片,可以将图片放在 public 目录中。public 目录中的文件不会被 Webpack 处理,而是直接复制到打包后的 dist 目录中。

  • 将图片放在 public/images/your-image.jpg

  • 直接指定 src 的值为绝对路径:

vue

复制

复制代码
<template>
  <div>
    <img src="/images/your-image.jpg" alt="描述图片">
  </div>
</template>

这种方式适合静态图片,且图片路径不会动态变化。


4. 动态绑定 src

如果你需要动态绑定图片路径(例如根据用户输入或条件切换图片),可以使用 v-bind(或简写为 :)动态绑定 src

vue

复制

复制代码
<template>
  <div>
    <img :src="imageUrl" alt="描述图片">
  </div>
</template>

<script>
export default {
  data() {
    return {
      imageUrl: '' // 初始为空
    };
  },
  mounted() {
    // 动态设置图片路径
    this.imageUrl = require('@/assets/your-image.jpg');
  }
};
</script>

总结

  • 网络图片 :可以直接指定 src 的值。

  • 本地图片

    • 如果图片在 src/assets 目录中,需要使用 requireimport 引入。

    • 如果图片在 public 目录中,可以直接指定 src 的值为绝对路径。

  • 动态图片 :使用 v-bind 动态绑定 src

相关推荐
weixin79893765432...43 分钟前
Vue 渲染体系“三件套”(template 模板语法、h 函数和 JSX 语法)
vue.js·h函数·template 模板·jsx 语法
xkxnq1 小时前
第五阶段:Vue3核心深度深挖(第74天)(Vue3计算属性进阶)
前端·javascript·vue.js
Hilaku1 小时前
不要在简历上写精通 Vue3?来自面试官的真实劝退
前端·javascript·vue.js
竟未曾年少轻狂2 小时前
Vue3 生命周期钩子
前端·javascript·vue.js·前端框架·生命周期
TT哇2 小时前
【实习】数字营销系统 银行经理端(interact_bank)前端 Vue 移动端页面的 UI 重构与优化
java·前端·vue.js·ui
用户982450514183 小时前
vue3响应式解构注意
vue.js
不会敲代码13 小时前
🚀 从DOM操作到Vue3:一个Todo应用的思维革命
vue.js
未来龙皇小蓝4 小时前
RBAC前端架构-02:集成Vue Router、Vuex和Axios实现基本认证实现
前端·vue.js·架构
晓得迷路了4 小时前
栗子前端技术周刊第 116 期 - 2025 JS 状态调查结果、Babel 7.29.0、Vue Router 5...
前端·javascript·vue.js
淡忘_cx4 小时前
使用Jenkins自动化部署vue项目(2.528.2版本)
vue.js·自动化·jenkins