一文搞懂在 Vue + Vite 项目中,应该将图片放在 ‘public’ 文件夹还是 ‘src/assets’文件夹

在 Vue + Vite 项目中,选择将图片放在 public 文件夹还是 src/assets 文件夹取决于你打算如何使用这些图片。

** VUE 项目文件的参考结构:**

my-vue-app/
├── public/
│   ├── favicon.ico
│   └── images/
│       └── logo.png
├── src/
│   ├── assets/
│   │   └── logo.png
│   ├── components/
│   │   └── HelloWorld.vue
│   ├── App.vue
│   ├── main.js
│   └── router/
│       └── index.js
├── index.html
├── package.json
└── vite.config.js

public 文件夹:

  • 静态资源: 将不需要 Vite 处理的静态资源放在 public 文件夹中。这些文件会直接提供,并保留原始文件名。
  • 直接访问: public 文件夹中的文件可以通过 URL 直接访问。例如,放在 public/images/logo.png 的图片可以通过 http://localhost:3000/images/logo.png 访问。
  • 构建时不变: 这些文件在构建过程中不会被哈希或转换。

src/assets 文件夹:

  • 处理过的资源: 将需要 Vite 处理的资源放在 src/assets 文件夹中,包括在 JavaScript 或 CSS 文件中导入的图片。
  • 模块导入: 你可以直接在组件中导入这些资源。例如,import logo from '@/assets/logo.png'
  • 哈希文件名: 在构建过程中,Vite 会对这些文件进行哈希处理以确保正确的缓存。例如,logo.png 可能会变成 logo.123abc.png

使用场景:

  • Public 文件夹: 用于 favicons、robots.txt 或其他需要直接访问且不经常更改的文件。
  • Src/Assets 文件夹: 用于图片、字体或其他作为组件逻辑一部分的资源,并需要与应用程序一起打包。

简要总结:

  • Public 文件夹: 静态资源,直接访问,不处理。
  • Src/Assets 文件夹: 处理过的资源,代码中导入,哈希文件名。

猜你喜欢

转载自blog.csdn.net/surfirst/article/details/142754104