【问题标题】:collectstatic command not run when deploying to Heroku, but setup is perfectly fine部署到 Heroku 时 collectstatic 命令不运行,但设置非常好
【发布时间】:2016-04-11 15:06:10
【问题描述】:

我已经验证的事情:

  • 我的collectstatic 目录(是的,我这样称呼它,以减少与static 源目录的混淆)在我的仓库中(通过.gitkeep 文件)(如heroku documentation 中所建议)李>
  • heroku run python manage.py collectstatic --dry-run --noinput 有效(建议here
  • collectstatic 被强制禁用:heroku config:add DISABLE_COLLECTSTATIC=0
  • 我正在推送一个新的提交(所以 heroku 实际上正在部署)

仍然没有运行collectstatic。我还能检查什么?

编辑

另外,我在settings.py 中正确定义了STATIC_ROOT。下面的相关部分:

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'collectstatic/')

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

编辑2

我安装的应用程序只是股票 django 1.9:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

EDIT3

我必须提到的一件事,这可能是相关的:DISABLE_COLLECTSTATIC 以前设置为 1(因此被强制禁用)对于这个 Heroku 应用程序,但我已确保它现在设置为 0。

也许 Heroku 中的错误阻止它使用最新值?我想检查这一点的唯一方法是创建一个新的 heroku 应用程序。

【问题讨论】:

  • 您是否将collectstatic 目录添加到您的settings.py 中的STATIC_DIRS 中?
  • @Remi:当然,问题已编辑。实际上不是STATICFILES_DIRS(这就是你的意思,对吗?),而是STATIC_ROOTcollectstatic 是输出目录。源静态目录在STATICFILES_DIRS 中定义,我只称它们为static
  • 您是否尝试过像这样专门添加目录:STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), os.path.join(BASE_DIR, 'collectstatic'), )跨度>
  • 不,我不想这样做,因为这没有意义。 collecstatic不是源目录,收集静态文件时不应该搜索(这就是STATICFILES_DIRS的意思)
  • 嗯好的,明白了。而且您只有一个正在使用的设置文件?

标签: django heroku collectstatic


【解决方案1】:

所以,不知道发生了什么,但是创建一个新的 Heroku 实例并使用空配置推送到它实际上会触发 collectstatic。

我怀疑 Heroku 没有正确评估对 DISABLE_COLLECTSTATIC 的更改。

编辑

实际上,DISABLE_COLLECTSTATIC=0 似乎阻止了collectstatic 运行。要确保 collectstatic 运行,请执行以下操作:

heroku config:unset DISABLE_COLLECTSTATIC

我会说Heroku documentation 有点令人困惑,因为它似乎暗示DISABLE_COLLECTSTATIC=0 实际上会运行 collectstatic - 但它不会。

【讨论】:

    猜你喜欢
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2019-05-22
    • 2020-12-21
    • 2021-05-13
    • 1970-01-01
    相关资源
    最近更新 更多