You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何保存Heroku上程序生成的文件?提交时文件被清除问题求助

解决Heroku部署后生成文件被清空的问题
  • 核心原因:Heroku的dyno采用临时文件系统,每次执行git push heroku main这类部署操作时,会基于你的Git仓库代码重新创建全新的dyno实例——之前程序运行时动态生成的所有本地文件都会被彻底清除,这是Heroku的底层设计机制,并非提交操作主动覆盖了文件。

  • 具体解决方法:

    1. 切换持久化存储方案:不要将生成的文件存在dyno本地,改用Heroku附加组件或第三方服务存储:比如用Heroku Postgres存储结构化数据,用Cloudinary/S3存储图片、文档等静态文件。
    2. 检查.gitignore配置:如果是本地开发时生成的文件没被提交到Git仓库,确认这类文件是否被.gitignore规则排除。但注意,即使提交了静态文件,程序运行时动态生成的内容依然无法在dyno中持久化,还是得依赖外部存储。
    3. 排查部署脚本逻辑:检查Procfile、package.json(Node.js项目)或其他构建配置文件,确认是否存在部署阶段自动清理文件的脚本(比如postinstall里的删除命令)。

举个实际场景:如果你的程序会生成用户上传的图片,应该在代码里添加逻辑,把图片直接上传到S3,而不是存在本地的/uploads目录;如果生成业务数据,写入数据库而非本地JSON文件。

内容的提问来源于stack exchange,提问作者Egor Mitin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:01:01