Next.js 如何访问上传到公用文件夹的文件?

Posted

技术标签:

【中文标题】Next.js 如何访问上传到公用文件夹的文件?【英文标题】:How to access files uploaded to the public folder in Next.js? 【发布时间】:2021-09-14 10:41:04 【问题描述】:

我在 Next.js 中有一个项目。我有那个上传文件并在这个项目的公共 URL 中分享。

首先我使用npm run dev 将文件上传到public 文件夹并且工作正常,但是当我更改为npm run start 并上传文件时,文件上传到public 文件夹但使用URL http://mydomain/fileuploaded.jpg 它没有节目,很少见,但它就在那里。

我在互联网上搜索,但没有找到解决此问题的方法。

【问题讨论】:

好的,但很烦人,因为我在互联网上看到的所有示例都是将文件上传到public folder :/ 我也遇到了同样的问题,你解决了吗? 【参考方案1】:

来自Next.js documentation:

只有在构建时位于公共目录中的资产才会由 Next.js 提供服务。在运行时添加的文件将不可用。

如果您想在运行时在应用程序中访问上传的文件,则必须将它们保存在其他地方。


或者,您可以在 Next.js 中设置自己的 custom server,这样您就可以更好地控制 serve static files/assets。

您也可以改用 API 路由来实现类似的效果。详情请见Next.js serving static files that are not included in the build or source code。

【讨论】:

以上是关于Next.js 如何访问上传到公用文件夹的文件?的主要内容,如果未能解决你的问题,请参考以下文章

每个人都可以通过 URL 访问 rails 公用文件夹吗?

如何使用 formdata 将图像文件发送到 React/Next js api?

如何从资源文件夹动态加载资产到公用文件夹并使用asset()助手访问它们

Next.js 公共图像未在生产构建中显示

Next.js 和 Ant Design Dragger:已部署实例上的文件上传失败

如何在 next.js 中获取图像宽度/高度?