背景有點...我設置了我的新網站的基本模板和我在內的一些流行的JavaScript庫,如AngularJS,引導的JavaScript文件,並Underscore.js的javascript 。當然,我將這些文件包裝在{%compress js%}中。下面的示例代碼:Django的壓縮機創建了語法錯誤
{% compress js %}
<script src="{{ STATIC_URL }}new_js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
<script>window.jQuery || document.write('<script src="{{ STATIC_URL }}new_js/vendor/jquery-1.8.3.min.js"><\/script>');</script>
<script src="{{ STATIC_URL }}new_js/vendor/bootstrap.js"></script>
<!-- Angular -->
<script src="{{ STATIC_URL }}new_js/vendor/angular.min.js"></script>
<script src="{{ STATIC_URL }}new_js/angular/directives.js"></script>
<script src="{{ STATIC_URL }}new_js/angular/services.js"></script>
<script src="{{ STATIC_URL }}new_js/vendor/underscore-1.4.3.min.js"></script>
{% block extra_js %}{% endblock %}
{% endcompress %}
我知道Django的壓縮機只運行了微小的過濾器,所以它可能不產生正確的Javascript輸出minifiers。
這裏是JS錯誤我JSMin得到:
SyntaxError: invalid increment operand
http://localhost:8000/site_media/static/cache/js/0f5eb5fb3b24.js
Line 448
而且從SLIMIT生成的文件中的錯誤:
SyntaxError: missing ; after for-loop initializer
http://localhost:8000/site_media/static/cache/js/7fbdf61f5abb.js
Line 1
我不能完全肯定這是怎麼回事,它似乎很難相信minifiers會產生對這些常見的JS庫不正確的文件。
有沒有人遇到和Django壓縮機的JavaScript過濾器搞亂了公共庫的問題?
包括非縮小版本也修復了我的bug –