当前位置: 首页 > article >正文

在 Vue + Vite 项目中,直接使用相对路径或绝对路径引用本地图片资源时,图片无法正确显示。

Vue 项目中静态资源引用问题

1.问题描述

在 Vue + Vite 项目中,直接使用相对路径或绝对路径引用本地图片资源时,图片无法正确显示。

错误示例

```javascript

// 错误方式1:使用相对路径

const products = [

  {

    name: 'iPhone 14 Pro',

    image: '../assets/iphone.jpg'  // ❌ 相对路径可能找不到正确位置

  }

]

// 错误方式2:使用项目绝对路径

const products = [

  {

    name: 'iPhone 14 Pro',

    image: '/shopping-mall/src/assets/iphone.jpg'  // ❌ 生产环境中路径会失效

  }

]

```

这些路径的问题:

1. 相对路径 `../assets/` 在运行时可能找不到正确位置

2. 绝对路径 `/shopping-mall/src/assets/` 在打包后会失效

3. 不会被 Vite 正确处理和优化

4. 生产环境中可能出现 404 错误

2. 解决方案

在 Vue + Vite 项目中,应该使用 `import` 方式导入静态资源。

 正确示例

```javascript

// 1. 在文件顶部导入图片

import iphone14Pro from '../assets/Apple iPhone 14 Pro.jpg'

import airJordan from '../assets/Nike Air Jordan 1.jpg'

// 2. 在数据中使用导入的变量

const products = [

  {

    name: 'iPhone 14 Pro',

    image: iphone14Pro  // ✅ 使用导入的变量

  },

  {

    name: 'Nike Air Jordan 1',

    image: airJordan    // ✅ 使用导入的变量

  }

]

```

3. 优势

使用 import 导入静态资源的优势:

1. **资源处理**:Vite 会自动处理图片资源

2. **路径解析**:确保在开发和生产环境中都能正确加载

3. **自动优化**:

   - 图片会被正确打包和优化

   - 支持 tree-shaking(未使用的图片不会被打包)

   - 生产环境中自动添加 hash,有利于缓存

4. **类型安全**:可以获得 IDE 的路径补全和类型检查

4. 注意事项

1. 确保图片文件放在正确的目录(通常是 `src/assets`)

2. 图片文件名要与导入名称完全匹配(包括大小写和空格)

3. 使用支持的图片格式(.jpg, .png, .webp 等)

4. 如果需要动态路径,可以使用 Vite 的 `new URL()` 语法或 `@/assets` 别名

http://www.lryc.cn/news/2387857.html

相关文章:

  • 判断手机屏幕上的横向滑动(左滑和右滑)
  • 用户有一个Django模型没有设置主键,现在需要设置主键。
  • 【文献阅读】EndoChat: Grounded Multimodal Large Language Model for Endoscopic Surgery
  • React JSX语法介绍(JS XML)(一种JS语法扩展,允许在JS代码中编写类似HTML的标记语言)Babel编译
  • 【R语言编程绘图-箱线图】
  • 【elasticsearch 7 或8 的安装及配置SSL 操作指引】
  • GitHub 趋势日报 (2025年05月23日)
  • MongoDB索引:原理、实践与优化指南
  • SQL实战之索引优化(单表、双表、三表、索引失效)
  • [7-1] ADC模数转换器 江协科技学习笔记(14个知识点)
  • SSM整合:Spring+SpringMVC+MyBatis完美融合实战指南
  • Spring Boot分页查询进阶:整合Spring Data REST实现高效数据导航
  • 阿里云 Serverless 助力海牙湾构建弹性、高效、智能的 AI 数字化平台
  • 升级node@22后运行npm install报错 distutils not found
  • 一个开源的多播放源自动采集在线影视网站
  • 【PhysUnits】10 减一操作(sub1.rs)
  • 深度检测与动态透明度控制 - 基于Babylon.js的遮挡检测实现解析
  • Linux下使用socat将TCP服务转为虚拟串口设备
  • docker push 报错 denied: requested access to the resource is denied
  • epub→pdf | which 在线转换??好用!!
  • PBX、IP PBX、FXO 、FXS 、VOIP、SIP 的概念解析以及关系
  • MySQL数据高效集成到金蝶云星空的技术分享
  • git 命令之-git cherry-pick
  • 如何在STM32CubeMX下为STM32工程配置调试打印功能
  • Linux系统 - 基本概念
  • kerberos在无痕浏览器 获取用户信息失败 如何判断是否无痕浏览器
  • 在h5端实现录音发送功能(兼容内嵌微信小程序) recorder-core
  • PDF电子发票数据提取至Excel
  • 【身份证识别表格】把大量手机拍摄的身份证信息转换成EXCEL表格的数据,拍的身份证照片转成excel表格保存,基于WPF和腾讯OCR的实现方案
  • FPGA高速接口 mipi lvds cameralink hdml 千兆网 sdi