我在 Heroku 上有一个 Django 应用程序,带有登台和生产环境。静态文件托管在 S3 上。我正在简化我的部署过程,并计划在我手动工作后设置 fabfile。
如何配置 collectstatic 以推送到多个地方?如果我在本地运行它,它会使用我的开发设置(使用本地 STATIC_ROOT)。如果我在我的 Heroku 应用程序之一上运行它(heroku run ./manage.py collectstatic),那么它就无法抓取文件(因为 .slugignore 确保它们永远不会被推送到 Heroku)。如果我在我的 Procfile 中包含 collectstatic,这同样适用。
我也在使用 django-pipeline,虽然它还没有做太多,因为我被困在 collectstatic 位上。
更新
为了回答 Marat 的问题,我尝试将设置文件作为选项传递给 collectstatic: ./manage.py collectstatic --settings=project.settings.prod
,但出现错误:Unknown command: 'collectstatic'
我检查了服务器,但已安装的应用程序确实包含 django.contrib.staticfiles 并且我也可以远程运行 collectstatic,所以我不确定是什么原因造成的。