除了一个之外,我可以在所有压缩块上使用过滤器吗?

pet*_*yum 8 django-compressor

在我的压缩器设置中,我在大多数javascript中使用SlimIt:

COMPRESS_JS_FILTERS = ['compressor.filters.jsmin.SlimItFilter', ]

我的一些js文件不应该通过SlimIt,因为文件已经缩小,或者当javascript与其他文件缩小时会抛出一些错误.我的模板块最终看起来像这样:

{# code that I minify #}
{% block compressed_libs %}
    {% compress js %}
        <script src="/static/js/compress_this.js"></script>
        <script src="/static/js/also_compress_this.js"></script>
        ...
    {% endcompress %}
{% endblock %}

{# code that shouldn't minify #}
{% block non-compressible_libs %}
    <script src="/static/js/already.min.js"></script>
    <script src="/static/js/breaks-everything.js"></script>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我可以为不同的块/文件设置不同的压缩过滤器规则,以便在跳过SlimIt时我的"不可压缩"文件仍然可以通过压缩器连接在一起吗?

pet*_*yum 1

正如approxiblue所说,看起来没有办法指定模板中每个压缩块使用哪些过滤器(在 Compressor 1.5 中)。

我会更新这个答案,有人想出了一些东西。

似乎可以通过向compress 模板标记添加一个参数来解决这个问题,以允许它返回一个CompressorNode带有标志的跳过过滤器base.py hunks()

我会看看 Compressor 社区对此有何看法,但如果您有任何想法,请告诉我。