首頁  >  文章  >  web前端  >  Django 的 js/css 壓縮元件 Django Compressor

Django 的 js/css 壓縮元件 Django Compressor

高洛峰
高洛峰原創
2016-11-24 09:31:551619瀏覽

為了加快網站的載入速度,我們通常要多js和css進行壓縮處理。這些js和css的壓縮工作如果都手動處理,費時費力。

Django Compressor 可以實現js/css的自動壓縮。 Django Compressor在易用性方面做的非常好,按照 文件 做簡單的設定後就可以正常工作。強烈建議大家去將文檔完整的看一遍(文檔很短)。

使用的時候,只需要將css/js放到 compress 標籤中 Django Compressor 即可自動處理。在debug模式時, Django Compressor 不會對做任何處理。在非debug模式時,Django Compressor會自動對js/css進行壓縮,並將壓縮後的問題輸出到django的 STATIC_ROOT 目錄。所以請務必保證 STATIC_ROOT 目錄進行了正確的設定。

{% load compress %}
{% compress [ [block_name]] %}

{% endcompress %}{%compress compress css %}

{% endcompress %}


coffeescript、less 支援

在開發階段coffeescript和less可以直接使用jseescript、less 支援

在開發階段coffeescript和less可以直接使用js來處理,在正式發佈時處於載入速度的考慮需要預先編譯成js和css。 Django Compressor 提供 COMPRESS_PRECOMPILERS 設置,根據type類型進行預處理。

COMPRESS_PRECOMPILERS = (
    ('text/coffeescript', 'coffee --compile --stdio'),
    ('text/less', 'lessc {infile} {outfile}'),🠎 () sass', 'sass {infile} {outfile}'),
    ('text/x-scss', 'sass --scss {infile} {outfile}'),
)

為可以在開發階段正常使用coffeescript和less,在開發階段需要引入對應的js文件,同時需要在非開發環境自動關閉。遺憾的是Django Compressor並沒有提供相關的設定。為此我寫了個在模板中取得django settings設定的tagget_setting。該tag包含在我的另一個專案 django-helper 中。

 {% get_setting "COMPRESS_ENABLED" "" "COMPRESS_ENABLED" %}

    {% if not COMPRESS_ENABLED %}
  . endif %}

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn