我在GitHub上有一个基于Django的项目,我希望每个人都能够使用一键式部署按钮进行部署。它不使用django.contrib.staticfiles
应用。
我在项目的根目录中有以下app.json
文件:
{
"name": "Django project",
"description": "A hello world Django-based project",
"repository": "https://github.com/john-doe/django-project",
"keywords": ["python", "django"],
"scripts": {
"postdeploy": "python manage.py migrate --noinput"
},
"addons": [
"heroku-postgresql"
],
"success_url": "/",
"env": {
"SECRET_KEY": {
"description": "A randomly generated secret to secure your Django installation.",
"generator": "secret"
}
}
}
问题是,即使我在'django.contrib.staticfiles'
列表中没有INSTALLED_APPS
,当有人试图部署我的应用时,Heroku会自动运行python manage.py collectstatic --noinput
,导致构建失败。
如何指示Heroku不要在部署时运行collectstatic
?
答案 0 :(得分:4)
只需将"DISABLE_COLLECTSTATIC": { "value": "1" }
添加到env
中的app.json
对象,就像这样:
"env": {
"DISABLE_COLLECTSTATIC": {
"description": "Don't run python manage.py collectstatic --noinput on deploy",
"value": "1"
}
}
如果您的现有Heroku应用程序具有以下命令,您也可以从终端执行此操作:
heroku config:set DISABLE_COLLECTSTATIC=1
答案 1 :(得分:4)