NextJS中Public文件夹存本地文件报错,本地与部署均无法访问
解决Next.js Public文件夹资源访问/下载报错问题
修正资源路径写法
Next.js访问Public目录下的资源,必须从根路径(/)开始写,绝对不能带public前缀。比如你的文件存在public/catalogs/xxx.pdf,代码里要写成/catalogs/xxx.pdf,而非public/catalogs/xxx.pdf或相对路径。
正确示例:- 图片展示:
<img src="/catalogs/demo.jpg" alt="产品图" /> - 文件下载按钮:
<a href="/catalogs/manual.doc" download>下载手册</a>
- 图片展示:
核对文件夹与文件名细节
确认Public下的catalogs目录确实存在,同时检查文件名的大小写——本地系统(比如Windows)对路径大小写不敏感,但部署后的服务器(Linux类)是严格区分的,代码里的路径要和实际文件名完全一致。检查Next.js配置项
如果用的是Next.js 13+ App Router,查看next.config.js里是否配置了basePath或assetPrefix。如果有设置,资源路径需要加上对应的前缀,比如basePath: '/my-project',那资源路径要写成/my-project/catalogs/xxx.pdf。清除缓存重新构建
本地开发时,删除.next文件夹后重启开发服务;部署前也务必清除构建缓存,避免旧的路径缓存导致错误。
内容的提问来源于stack exchange,提问作者Max Max
相关产品推荐
相关产品推荐

