我正在使用django-compressor来压缩我网站的静态CSS和Javascript文件.由于我通过Amazon S3提供我网站的静态资产,我还使用django-storage将我的文件上传到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>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我在这里尝试做的是允许继承此模板的模板覆盖css和js块,因此他们可以定义自己的css和javascript进行压缩.不幸的是,这不是发生的事情.
当我运行python manage.py compress …
此问题专门针对使用Django Compressor的生产站点.我想在COMPRESS_OFFLINE = True时使用它,这样我就可以在推送到生产之前预压缩我所有网站的css文件.
我想在base.html中做相同的事情:
{% compress %}
{% block css %}
{% endblock %}
{% endcompress %}
Run Code Online (Sandbox Code Playgroud)
以便扩展base的文件中的所有css块都被压缩.这主要是因为我不必将{%compress%}标签添加到我的所有子模板中.
Stack Overflow上有几个类似的问题,但是在离线压缩时(例如使用Django Compressor的压缩管理命令),我没有找到一个很好的解决方案.当COMPRESS_OFFLINE = False时,周围的压缩标签工作正常.有人找到了让这项工作脱机的方法吗?
我列出了一些似乎与非离线解决方案有关的类似线程.第二个线程中的链接表明在离线使用Django Compressor时存在过去的继承问题,但可能已经解决了: