gpt4 book ai didi

django - Heroku Collectstatic 超时与 Django 应用程序

转载 作者:行者123 更新时间:2023-12-02 08:57:35 30 4
gpt4 key购买 nike

遇到一个意外问题,我最近一次尝试在 Heroku 上为应用程序运行collectstatic 无限期超时:

Running `python manage.py collectstatic` attached to terminal... up, run.6250
/app/.heroku/python/lib/python2.7/site-packages/dotenv.py:16: UserWarning: not reading .env - it doesn't exist.
warnings.warn("not reading %s - it doesn't exist." % dotenv)

You have requested to collect static files at the destination
location as specified in your settings.

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes

在我输入"is"后,它会挂起并超时,没有错误。当我附加 --dry-run --noinput 时,也会发生同样的情况。我的 env.txt 文件包括

AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY
AWS_QUERYSTRING_AUTH = False

我很困惑,因为我的代码没有任何变化,而且我之前已经使用此应用程序成功运行了collectstatic。

应用程序正在通过 S3-boto 使用 django-storage。这是我的设置:

if DEBUG:
#dev storage using local
...

else:
# Production AWS S3
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AVATAR_STORAGE_DIR = 'avatars/'

AWS_ACCESS_KEY_ID = env('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = env('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME')
AWS_QUERYSTRING_AUTH = env('AWS_QUERYSTRING_AUTH', False)
AWS_PRELOAD_METADATA = True

STATIC_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
MEDIA_URL = STATIC_URL
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'

所有 AWS 凭证均在 Heroku 配置中设置。 FWIW我有

heroku labs:enable user-env-compile 

已启用

最佳答案

collectfast 添加到您的requirements.txt 文件和settings.py(并检查 installation docs )。它是一个救星,特别是如果您有很多文件,因为它使用您的缓存设置来存储之前上传的文件的哈希值。将其添加到我的许多 Django 项目中极大地改进了静态文件集合(在 Heroku 的情况下,实际上使其变得可行)。

关于django - Heroku Collectstatic 超时与 Django 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21799234/

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