Google
に
と
得点は、
すぐに
HTTP
サーバのコンテンツ圧縮を 有効に する
Apacheのmod_deflateで コンテンツを 圧縮して サイトを 高速化する 方法 | OXY NOTES コンテンツに
有効期限を 設定する
【Apache】 Expiresヘッダ(有効期限)を 出す at softelメモ django-compress
を使って、 js/css
を圧縮する
js、cssファイルを 簡単に 圧縮できる Django Compressorの 使い 方 | 遍歴プログラマ日記
django-compress
をjs/css
を
mezzanine
では、OPTIONAL_APPS
扱いで
デフォルトではOFF
にON
に
備忘と
0. 前提
以下の
CentOS release 6.7 (Final)
Python Version
Python 2.7.8Package (必要そうな
ものだけ 抜粋)
Django (1.9.6)
Mezzanine (4.1.0)
1. インストール
基本インストールさえしてしまえば、
ON
に
詳細は
command
pip install django_compressor
確認
pip list
django-compressor (2.0)
が
2. 設定
settings.py
は、settings.py
内にOPTIONAL_APPS
と
# These will be added to ``INSTALLED_APPS``, only if available. OPTIONAL_APPS = ( "debug_toolbar", "django_extensions", "compressor", PACKAGE_NAME_FILEBROWSER, PACKAGE_NAME_GRAPPELLI, )
OPTIONAL_APPS
は、settings.py
のset_dynamic_settings
で
インストールされているINSTALLED_APPS
と
#################### # DYNAMIC SETTINGS # #################### # set_dynamic_settings() will rewrite globals based on what has been # defined so far, in order to provide some better defaults where # applicable. We also allow this settings module to be imported # without Mezzanine installed, as the case may be when using the # fabfile, where setting the dynamic settings below isn't strictly # required. try: from mezzanine.utils.conf import set_dynamic_settings except ImportError: pass else: set_dynamic_settings(globals())
set_dynamic_settings
では、
インストールされていたら、INSTALLED_APPS
に
# Setup for optional apps. optional = list(s.get("OPTIONAL_APPS", [])) for app in optional: if app not in s["INSTALLED_APPS"]: try: __import__(app) except ImportError: pass else: s["INSTALLED_APPS"].append(app)
3. template
内の compress
の 記載と 使用時の 注意点
base.html 内では、
以下のようにcompress
するcss/js
を
template
内の compress
の 記載
- css
{% block extra_css %}{% endblock %}
が継承ページ側で 記述していく、
css
ブロックになります。 継承ページ側で 記載した css
もまとめて 圧縮されます。
{% compress css %} <link rel="stylesheet" href="{% static "css/bootstrap.css" %}"> <link rel="stylesheet" href="{% static "css/mezzanine.css" %}"> <link rel="stylesheet" href="{% static "css/bootstrap-theme.css" %}"> {% if LANGUAGE_BIDI %} <link rel="stylesheet" href="{% static "css/bootstrap-rtl.css" %}"> {% endif %} {% ifinstalled cartridge.shop %} <link rel="stylesheet" href="{% static "css/cartridge.css" %}"> {% if LANGUAGE_BIDI %} <link rel="stylesheet" href="{% static "css/cartridge.rtl.css" %}"> {% endif %} {% endifinstalled %} {% block extra_css %}{% endblock %} {% endcompress %}
- javascript
js
についても 同じように、 {% block extra_js %}{% endblock %}
が継承ページ側で 記述していく、
js
ブロックがあります。
{% compress js %} <script src="{% static "mezzanine/js/"|add:settings.JQUERY_FILENAME %}"></script> <script src="{% static "js/bootstrap.js" %}"></script> <script src="{% static "js/bootstrap-extras.js" %}"></script> {% block extra_js %}{% endblock %} {% endcompress %}
使用時の 注意点
{% block extra_js %}{% endblock %}
継承ページ側で、
外部サイトのjavascript
読み
Internal server error
に
UncompressableFileError at /blog/Make_sure_you_are_not_calling_WARNING_on_wicket/ 'https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.4/gist-embed.min.js' isn't accessible via COMPRESS_URL ('/static/') and can't be compressed
外部サイトの
記載している
ちなみに、compressed
をON
に
この
追記
続きを
django-compressor デフォルトの
gzip
のcss
の
以上です。
コメント