Я использую django-compressor для сжатия статических файлов CSS и Javascript моего сайта. Поскольку я обслуживаю статические ресурсы своего сайта через Amazon S3, я также использую django-storages для загрузить мои файлы на S3.
Вот моя проблема: я пытаюсь создать чистый шаблон base.html
, который все другие шаблоны моего сайта могут наследовать и расширять. Вот как это выглядит в настоящее время:
{% load compress %}
<html>
<head>
<!-- test -->
{% compress css %}
<link rel="stylesheet" type="text/css" media="screen" href="{{ STATIC_URL }}css/styles.css" />
{% endcompress %}
{% compress css %}
{% block css %}{% endblock %}
{% endcompress %}
{% compress js %}
{% block js %}{% endblock %}
{% endcompress %}
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>
Как видите, здесь я пытаюсь разрешить моим шаблонам, наследующим этот шаблон, переопределять блоки css
и js
, чтобы они могли определять свои собственные css и javascript для сжатия. К сожалению, этого не происходит.
Когда я запускаю python manage.py compress
(чтобы django-compressor анализировал мои шаблоны и генерировал сжатый код javascript и css), он фактически не находил включенные файлы css и javascript.
Например, вот шаблон моего сайта index.html
:
{% block css %}
{{ block.super }}
<link rel="stylesheet" type="text/css" media="screen" href="{{ STATIC_URL }}css/index.css" />
{% endblock %}
Когда я пытаюсь посетить эту страницу на своем сайте, я получаю сообщение об ошибке, говорящее о том, что сжатый файл не существует.
Я считаю, что происходит то, что команда python manage.py compress
не проверяет мои шаблоны, унаследованные от base.html
. И поскольку он их не анализирует, он не генерирует никакого сжатого кода.
Я бы очень хотел, чтобы это работало, потому что единственный обходной путь, который я нашел до сих пор, — это вручную добавить теги {% compress %}...{% endcompress %}
в каждый отдельный файл шаблона, который у меня есть явно. Я просто ненавижу это делать, так как везде повторяется столько кода :(
Мы будем очень признательны за любые советы.
python manage.py compress
— только когда я фактически пытаюсь просмотреть страницу, которая наследуется отbase.html
и переопределяет блоки css или js. - person rdegges   schedule 05.03.2012