我可以在除一个压缩块之外的所有压缩块上使用过滤器吗?
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 社区对此有何看法,但如果您有任何想法,请告诉我。
在我的压缩器设置中,我对大多数 javascript:
使用 SlimItCOMPRESS_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 社区对此有何看法,但如果您有任何想法,请告诉我。