如何在 heroku 上为 django 设置 collectfast?

How to set up collectfast for django on heroku?

如何在 heroku 上为 django 设置 collectfast? 这是假设我已经成功设置静态文件托管和从 Amazon S3 提供服务。

1) 要禁用 heroku 的自动 collectstatic,运行:

heroku config:set DISABLE_COLLECTSTATIC=1

2) 将以下内容添加到 settings.py 以在数据库中使用 table 作为 collectfast 的缓存。提交并将更改推送到 heroku。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    },
    'collectfast': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'collectfast_cache',
        'TIMEOUT': 60,
        'OPTIONS': {
            'MAX_ENTRIES': 10000
        },
    },
}
COLLECTFAST_CACHE = 'collectfast'

4) 要在数据库中创建所需的缓存 table,运行:

heroku run createcachetable

5) 要恢复 heroku 的自动 collectstatic,运行:

heroku config:unset DISABLE_COLLECTSTATIC

每个部署现在都会正确使用 collectfast 将修改后的静态文件收集到 s3。