我正在使用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
andjs
块,以便他们可以定义自己的 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 %}
在我明确拥有的每个模板文件中手动添加标签。我只是讨厌这样做,因为它到处重复这么多代码:(
任何建议将不胜感激。