Джанго компресс + статик с амазонкой с3

django heroku amazon-s3 django-staticfiles django-compressor

201 просмотра

1 ответ

1656 Репутация автора

У меня есть приложение Django со следующей архитектурой:

skeleton/
   assets/
       sass/
   static/
       css/
   templates/
       base.html
   settings/
       common.py
       dev.py
       prod.py
apps/
    views.py
    // ...

У меня есть gulpfile.jsскрипт, который компилирует все sass skeleton/static/css/desktop.css, и у меня есть в моем шаблоне skeleton/templates/base.html:

<!DOCTYPE html>
<html>
<head>
{% load compress staticfiles %}
{% block css %}
    {% compress css %}
        <link href="{% static "css/desktop.css" %}" type="text/css" rel="stylesheet">
    {% endcompress %}
{% endblock %}
</head>
...

Мои настройки:

# common.py
STATIC_ROOT = normpath(join(DJANGO_ROOT, 'static'))
STATIC_URL = '/static/'

INSTALLED_APPS = (
    ...
    'compressor',
    ...
)
COMPRESS_ENABLED = True
COMPRESS_OUTPUT_DIR = 'CACHE'

Этот файл импортируется prodи dev:

# prod.py
STATICFILES_STORAGE = DEFAULT_FILE_STORAGE = 'apps.core.storage.CachedS3BotoStorage'
STATIC_URL = 'https://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME

а также

# dev.py
DEBUG = True
COMPRESS_ENABLED = True

Я следовал руководству using-staticfiles и реализовал CachedS3BotoStorage(код точно такой же).

Локально работает нормально, но как только я пытаюсь толкнуть его к героку, компиляция не получается:

CommandError: Произошла ошибка во время рендеринга skeleton / templates / base.html: « https://XXX.amazonaws.com/css/desktop.css » не доступен через COMPRESS_URL (« https://XXX.amazonaws.com/» ') и не может быть сжат


Я потерялся в том, что файл https://XXX.amazonaws.com/css/desktop.cssсуществует (т. Е. Если я попытаюсь получить к нему прямой доступ, я вернул файл), но каким-то образом оператор сжатия не работает.

Я думал, что добавление CachedS3BotoStorageхранилища файлов поможет, но, видимо, это не так.


Что я должен сделать, чтобы решить это?

Примечание: я включил только минимальный объем кода / конфигурации, чтобы, надеюсь, дать контекст, но если что-нибудь еще имеет смысл, я добавлю его.

Автор: nobe4 Источник Размещён: 18.07.2016 08:49

Ответы (1)


0 плюса

1078 Репутация автора

Вам не нужны {% compress %}теги в вашем шаблоне.

Вы можете найти этот ответ полезным.

Автор: ohlr Размещён: 09.02.2019 01:10
Вопросы из категории :
32x32