create-react-app:我应该把动态上传的图片放在哪里?

create-react-app: where do I put dynamically uploaded images?

嗨,我正在使用 create-react-app,我已经设置了一个文件上传,允许将图像发送到后端并保存在本地(到项目构建目录)。我可以通过 localhost:4000/image.png 动态引用图像,这样已经可以工作了(即:我有一个博客,可以让我上传图像,稍后我可以通过 blogList 访问这些图像)。

不过我认为这可能不是动态上传图片的最佳位置。我已经阅读了有关 create-react-app 的文档,提到图像的两个位置似乎都不适用于我的用例,我觉得我肯定做错了什么但我不确定是什么。

我指的是文档: 说使用 "import" 但是我是动态加载的,所以我看不出这是怎么回事? https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-images-fonts-and-files

说使用 public,但这不需要重建吗?因为我动态加载这是不可能的:https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#when-to-use-the-public-folder

注意:我有一个图像上传器和后端工作正常,它已经使用 /build 目录工作。我可以上传和动态引用图像。我只是在寻找做这样的事情的最佳实践。谢谢! (如果你提到 "just use nginx" 能否请你详细说明一下实现)

作为一名学习者,我曾在这个问题上苦苦挣扎,并且曾尝试过不同的方法。对于很少使用的资产,对客户端使用 /public 可能会有用,但我有一个应用程序,客户端可以上传图像并管理它们。和你一样,我不喜欢这些方法并最终采用了这种设置。

  • 在后端创建一个/public目录并将图片上传到/public/images
  • 用 Express 静态服务 /public 目录。
  • 为图像路径使用动态路径变量(通过配置设置)。 http://localhost:backend_port/public/images 用于开发,/public/images 用于生产。

我不知道这是最好的方法,但它对我有用。除了在设置之前上传图像时的最佳方法外,CRA 在每次上传图像后刷新(热重新加载)我的应用程序。