Next.js+React项目中PNG图片无法显示问题求助
解决Next.js中PNG图片无法显示的404问题
根据你提供的404错误信息和代码,以下是几种针对性的解决方案:
1. 修正img标签的require引用写法
在TypeScript/ES模块环境中,用require导入图片资源时,需要访问default属性才能拿到正确的文件路径:
<img src={require('../../public/SlideShow60.png').default} />
2. 检查Next.js静态导出配置(若使用静态部署)
如果你是通过output: 'export'进行静态导出部署,Next.js的Image优化功能默认不可用,会导致图片路径异常。需要在next.config.js中开启unoptimized模式:
/** @type {import('next').NextConfig} */ const nextConfig = { output: 'export', images: { unoptimized: true, }, } module.exports = nextConfig
开启后,next/image组件会自动降级为普通img标签,同时public目录下的图片会被直接复制到导出目录的根路径,你也可以直接使用根路径引用:
<img src="/SlideShow60.png" alt="Slide-Show-Button" />
3. 清理缓存并重新构建部署
缓存异常可能导致图片未被正确打包到构建产物中,执行以下命令清理缓存后重新构建:
rm -rf .next node_modules npm install npm run build npm run start
4. 验证文件名与路径的大小写一致性
Linux服务器(包括大部分云部署平台)对文件名大小写敏感,确保本地的SlideShow60.png和部署后服务器上的文件名完全一致,避免因大小写不匹配导致404。
5. 检查next.config.js的资源前缀配置
如果你的部署域名存在自定义路径前缀(比如子目录),需要在next.config.js中配置assetPrefix,确保图片路径正确:
const nextConfig = { assetPrefix: 'https://myapp.web.app', // 或者对应你的部署前缀路径 } module.exports = nextConfig
内容的提问来源于stack exchange,提问作者Michel
相关产品推荐
相关产品推荐

