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

Can I use a filter on all compress blocks except for one?

在我的压缩器设置中,我对大多数 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 %}

我可以为不同的 blocks/files 设置不同的压缩过滤器规则,这样我的 "non-compressible" 文件仍然可以在跳过 SlimIt 的同时被压缩器连接在一起吗?

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

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

这似乎可以通过向 compress template tag to allow it to return a CompressorNode with a flag to skip the filter in base.py hunks()

添加一个参数来解决

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