fetch获取前端项目本地public中的静态文件
时间: 2024-10-14 21:02:11 浏览: 13
`fetch` 是现代浏览器中用于异步请求数据的一种 API,通常用于网络通信。但在前端项目中,如果你想从本地 `public` 文件夹中获取静态文件(如图片、CSS、JavaScript 等),虽然直接使用 `fetch` 不太常见,因为它的设计目标是处理远程资源,但在某些特定场景下可以借助一些技巧。
如果你的静态文件放在项目根目录的 `public` 文件夹中,并且希望在同源策略允许的范围内访问,你可以通过更改 URL 来指向这个路径。例如:
```javascript
const publicUrl = process.env.NODE_ENV === 'production' ? '/your-static-file.ext' : '/src/public/your-static-file.ext'; // 使用环境变量处理生产环境的URL变化
fetch(publicUrl)
.then(response => {
if (!response.ok) {
throw new Error(`Failed to load ${url}: ${response.status} ${response.statusText}`);
}
return response.blob();
})
.then(blob => {
// 这里 blob 可以进一步处理,比如解析为Blob对象,转换为URL等
});
```
这里假设你是在一个服务端渲染的环境中,如果是在纯前端客户端,那么可以直接使用相对路径。注意,为了安全考虑,确保你的服务器配置正确,不会泄漏敏感信息,比如直接暴露 `/src/` 目录给用户。