node.js - 错误:ENOENT:没有这样的文件或目录 -Heroku
问题描述
我是网络新手,刚开始研究 NodeJS。
我在 Heroku 上部署了一个应用程序。但是当我将图像文件保存在本地机器上时,它工作得很好,但是当我将它部署在 Heroku 服务器上时,我的图像没有保存并显示错误:
Error ENOENT: no such file or directory, open '../public/uploads/1623462977307.png'
我的 FILES_PATH 是 ../public/uploads 在 Heroku 环境变量上设置的。我尝试了所有喜欢的绝对路径,相对路径,但问题没有解决。
解决方案
该错误意味着该../public/uploads
文件夹不存在。您可以通过确保文件夹存在来修复错误。创建文件夹,在其中放入一个名为 的空文件.gitkeep
,然后提交更改。当您推送到 Heroku 时,这会将空文件夹保留在您的存储库中。
请记住,Heroku 的文件系统是短暂的/短命的。这意味着您保存在磁盘上的任何图像都将在您重新启动或部署应用程序后消失。您不能依赖 Heroku 的文件系统来存储需要更长时间保存的图像。在此处阅读更多信息:https ://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted
您最好将图像保存在其他地方。查看 Cloudinary 或 AWS S3 等云存储解决方案。
推荐阅读
- python - 如何将标准输入与标准输出结合起来?
- angular - 如果 id 匹配,角度 ngrx 存储更新数组项
- splunk - Splunk搜索json中的key
- sqlite - SQLITE查询,连接另一个表中的数据而不连接
- azure - Service Fabric FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR:下载路径已清理错误
- arrays - 我不明白 array[row * 3+ column] 如何创建多维数组
- node.js - Node Promises.all() 执行时间过长
- sql - SQL 活动验证但不更新目标数据扩展
- c# - 用于从 3 个表中获取数据的 LINQ 查询
- javascript - 知道设备方向是否与坐标一致的逻辑