gpt4 book ai didi

django - 部署到 Heroku 时,collectstatic 命令不运行,但设置完全没问题

转载 作者:行者123 更新时间:2023-12-03 00:25:32 25 4
gpt4 key购买 nike

我已经验证的事情:

  • 我的 collectstatic 目录(是的,我这样调用它,以减少与 static 源目录的混淆)位于我的存储库中(通过 .gitkeep 文件)(按照 heroku documentation 中的建议)
  • heroku run python manage.pycollectstatic --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',
]

编辑3

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

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

最佳答案

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

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

编辑

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

heroku config:unset DISABLE_COLLECTSTATIC

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

关于django - 部署到 Heroku 时,collectstatic 命令不运行,但设置完全没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34651522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com