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

如何使用FileZilla将本地文件上传至Heroku应用public文件夹?

如何用FileZilla(或替代方法)上传文件到Heroku应用的public文件夹

嘿,我来帮你搞定这个问题!首先得跟你说清楚:Heroku和EC2的架构完全不一样,它不支持传统的FTP/SFTP直接连接,所以你没法直接用FileZilla像连EC2那样上传文件到public文件夹。不过别担心,有几个靠谱的替代方法能达成你的需求,我给你一步步讲:

方法一:用Git部署(Heroku官方推荐的标准方式)

这是最稳定、最常用的方式,适合长期维护的项目:

  • 先确保你的本地项目已经初始化了Git仓库,如果没有,打开终端到项目根目录,运行:git init
  • 把Heroku远程仓库关联到你的本地Git项目:heroku git:remote -a 你的应用名称(替换成你自己的Heroku应用名)
  • 把要上传的文件放到本地项目的public文件夹里,然后提交更改:
    • git add public/(把public文件夹的所有修改加入暂存)
    • git commit -m "更新public文件夹内容"(提交修改并加说明)
  • 最后推送到Heroku部署:git push heroku main(如果你的主分支是master,就换成master)

方法二:用Heroku CLI临时上传小文件(适合测试场景)

Heroku的文件系统是临时的,应用重启后所有临时上传的文件都会消失,所以这个方法只适合临时测试用:

  • 先打开终端,运行heroku run bash -a 你的应用名称,进入Heroku应用的shell环境
  • 如果你想用FileZilla先把文件传到某个临时托管点(比如你自己的EC2服务器),然后在Heroku的shell里用curl把文件拉到public文件夹,比如:curl -O http://你的EC2地址/xxx.jpg -o public/xxx.jpg
  • 或者也可以用wget命令:wget http://你的EC2地址/xxx.jpg -P public/

方法三:用Heroku静态资源插件(适合纯静态网站)

如果你的应用是纯静态的(只有HTML/CSS/JS/图片这些),可以用官方的heroku-static插件来快速部署:

  • 先安装插件:heroku plugins:install heroku-static
  • 然后直接部署本地的public文件夹:heroku static:deploy public/ -a 你的应用名称
  • 这个插件会帮你把静态资源部署到Heroku的CDN上,更新起来比Git更快捷

为什么FileZilla不能直接用?

Heroku是基于容器化的平台,每个应用运行在临时的dyno实例里,没有开放FTP/SFTP服务的端口,而且它的文件系统是短暂性的——每次dyno重启(比如应用升级、自动扩容),所有非Git部署的文件都会被重置。所以官方不支持直接用FTP工具上传,推荐用上面的Git或官方CLI工具来管理部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:37:57