我已经验证的事情:
collectstatic
目录(是的,我称之为,以减少对static
源目录的干扰)在我的仓库中(通过.gitkeep
文件)(如heroku documentation)heroku run python manage.py collectstatic --dry-run --noinput
有效(建议here)heroku config:add DISABLE_COLLECTSTATIC=0
仍然,collectstatic
未运行。我还能检查什么?
另外,我在STATIC_ROOT
中正确定义了settings.py
。相关部分如下:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'collectstatic/')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
我安装的应用只是股票django 1.9:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
有一件事我必须提及,这可能是相关的:DISABLE_COLLECTSTATIC
之前被设置为1(因此被强制禁用)对于这个一个heroku应用程序,但我已经确定它现在设置为0。
Heroku中的错误可能会阻止它使用最新值?我想检查这个的唯一方法是创建一个新的heroku应用程序。
答案 0 :(得分:0)
所以,不知道发生了什么,但是创建一个新的Heroku实例并使用空配置推送它实际上是触发了collectstatic。
我怀疑Heroku没有正确评估对DISABLE_COLLECTSTATIC
的更改。
实际上,似乎DISABLE_COLLECTSTATIC=0
也会阻止collectstatic
运行。要确保收集静止运行,请执行以下操作:
heroku config:unset DISABLE_COLLECTSTATIC
我会说Heroku documentation有点令人困惑,因为它似乎意味着DISABLE_COLLECTSTATIC=0
实际上会运行collectstatic - 但事实并非如此。