由于静态文件收集原因,Heroku 拒绝推送
Posted
技术标签:
【中文标题】由于静态文件收集原因,Heroku 拒绝推送【英文标题】:Push rejected by Heroku for the static file collection reason 【发布时间】:2018-10-26 13:02:10 【问题描述】:当我尝试将 Django 应用程序部署到 Heroku 时,遇到与 python - Collectstatic error while deploying Django app to Heroku - Stack Overflow 相同的问题 它开始构建、下载和安装所有内容,但这就是我在收集静态文件时得到的:
$ git push heroku master
Counting objects: 5375, done.
Total 5375 (delta 1092), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing requirements with pip
remote:
...
remote:
remote: ! Error while running '$ python manage.py collectstatic --noinput'.
remote: See traceback above for details.
remote:
remote: You may need to update application code to resolve this error.
remote: Or, you can disable collectstatic for this application:
remote:
remote: $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote: https://devcenter.heroku.com/articles/django-assets
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy....
remote:
remote: ! Push rejected to fierce-cove-94300.
remote:
To https://git.heroku.com/fierce-cove-94300.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/fierce-cove-94300.git'
我尝试了所有答案,但没有帮助。
另外我尝试Django and Static Assets | Heroku Dev Center 配置设置并安装whitenoise
并提交更改。
问题没有解决。
【问题讨论】:
【参考方案1】:禁用自动收集静态:
heroku config:set DISABLE_COLLECTSTATIC=1
然后将您的项目推送到heroku。部署完成后,手动收集静态如下:
heroku run python manage.py collectstatic
如果你仍然得到错误,你的静态文件配置可能是原因。尝试让它变得简单,例如去除白噪声并使用 s3 存储桶。
【讨论】:
以上是关于由于静态文件收集原因,Heroku 拒绝推送的主要内容,如果未能解决你的问题,请参考以下文章
Heroku/Django 部署:为啥我在成功部署和静态收集时收到错误 500?