在 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 文件夹: 处理过的资源,代码中导入,哈希文件名。