Nitro dev模式下静态图片路径404,怎么配置才能正确访问?

UE丶尚文 阅读 15

在Nuxt3项目里用Nitro开发服务器运行时,引用public/image目录下的logo.png一直报404。我直接写都试过了,

控制台报错显示:

GET http://localhost:3000/image/logo.png 404 (Not Found)

生产构建后部署没问题,但开发环境就是访问不到。检查了nuxt.config.ts里的srcDir和publicDir配置都没问题,是不是Nitro的devServer需要特殊设置?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
一钧 Dev
这个问题大概率是路径写法的问题,开发环境和生产环境的静态资源处理确实有点区别。直接说解决方案吧。

在Nuxt3里,public目录下的文件会被自动映射到根路径,所以你不需要加/image/这种前缀。正确的引用方式应该是/logo.png,不管是模板里还是CSS里都这么写。

如果你非要用/image/logo.png这种方式,那就得调整目录结构,把图片挪到public/image/下面,这样路径才能对得上。不过说实话,多一层目录没必要,直接放public下最省事。

另外提醒一下,开发服务器是有缓存的,改完路径记得重启一下devServer,不然可能还是404。我之前就踩过这个坑,改了路径发现没生效,重启一下就好了。

如果这些都试过了还不行,检查下是不是有其他中间件或者代理拦截了请求,虽然这种情况比较少见,但也不是没可能。直接在nuxt.config.ts里加个日志输出验证下:

export default defineNuxtConfig({
nitro: {
devProxy: {
'/image': 'http://localhost:3000'
}
}
})


这个配置可以帮你确认请求是不是被正确转发了。不过正常情况下前面说的路径调整就够了,我遇到过好几个类似问题,基本都是路径写法导致的。
点赞
2026-02-17 20:02