gpt4 book ai didi

django - Heroku 不会在 Django 中收集静态数据,但会告诉它会收集静态数据

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

命令 heroku run python manage.py collectstatic 返回类似的东西

163 static files copied to '/app/live-static-files/static-root', 
509 post-processed.

这是我的设置:

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware', # White Noise
'django.contrib.sessions.middleware.SessionMiddleware',
...
]
STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, "live-static-files", "static-root")

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

MEDIA_URL = "/media/"

MEDIA_ROOT = os.path.join(BASE_DIR, "live-static-files", "media-root")

DISABLE_COLLECTSTATIC = 0

通过 heroku run bash 我进入 /app/live-static-files/static-root 并看到它是空的(该文件夹存在,因为它在 .gitkeep 的 repo 中) 并且服务器对所有请求给出 500 错误。

现在使用 heroku run bash 我尝试 python manage.py collectstatic 并且它有效!但是在 heroku restart 之后它又是空的。

为什么 Heroku 告诉它它复制了 statics,甚至告诉 statics 文件夹的正确路径但实际上并没有这样做?为什么它实际上不这样做?

最佳答案

Heroku 文件系统是短暂的——这意味着在 dyno 运行时对文件系统的任何更改只会持续到 dyno 关闭或重新启动。每个 dyno 都使用最近部署的文件系统的干净副本启动。这类似于 Docker 等基于容器的系统的运行情况。

此外,在正常操作下,dynos 将在称为“循环”的过程中每天重新启动。

阅读这些文章:

https://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted

https://devcenter.heroku.com/articles/django-assets

关于django - Heroku 不会在 Django 中收集静态数据,但会告诉它会收集静态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63238587/

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