ΠΡΠΈΠ²Π΅Ρ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Django (1.8.2) ΠΈ django-ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡ (2.2). Π‘ΠΆΠ°ΡΡΠΉ js ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΉΠ» css Π½Π΅ ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ.
ΠΠΎΡ ΡΠ°ΡΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°:
{% load staticfiles %}
{% load compress %}
{% compress css %}
<link rel="stylesheet" href="{% static 'landing/style.css' %}" type="text/css"></head>
{% endcompress %}
{% compress js %}
<script src="{% static 'landing/js/jquery.min.js' %}"></script>
<script src="{% static 'landing/js/ads.js' %}"></script>
<script src="{% static 'landing/js/ads.js' %}"></script>
{% endcompress %}
ΠΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» css, Π½ΠΎ ΠΎΠ½ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ».
ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΡΠ²ΠΎΠΉ settings.py.
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'compressor',
)
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
)
COMPRESS_ENABLED = True
COMPRESS_OUTPUT_DIR = 'compress'
STATIC_ROOT = '/home/service/growth/static_file/static'
css Π½Π΅ ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΌ. Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π΄Π΅ΡΡ: https://django-compressor.readthedocs.io/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS. ΠΡΠΈΠ·Π½Π°ΡΡΡ, ΡΡΡΠ°Π½Π½ΠΎ, ΡΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ js, Π° Π½Π΅ Π΄Π»Ρ css. Π½ΠΎ ΠΌΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΠΏΡΡΡΠΈΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅Π»ΠΈΠ· Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ Ρ CSS. ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ COMPRESS_CSS_FILTERS
ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π»Π° Π΄Π»Ρ css? ΠΠ°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ. ΠΡΠ° ΡΡΡΠΎΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter', 'compressor.filters.cssmin.rCSSMinFilter']
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
Π― ΠΎΡΡΠ°Π²Π»Ρ ΡΡΠΎ ΠΎΡΠΊΡΡΡΡΠΌ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π»ΠΈΠ·.
Π ΡΡΠΈΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ Ρ ΠΏΡΠΎΡΡ ΡΠ΄Π°Π»ΠΈΡΡ rcssmin ΠΈΠ· setup.py:install_requires ΠΈ ΠΈΠ·Π»ΠΎΠΆΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅Β».
@dilyanpalauzov, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ
edit: ... Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» Π΄ΡΠΌΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΊΠ°ΠΊ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° rcssmin ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π±Ρ ΠΎΡΡΠ°Π²ΠΈΠ» ΡΡΠΎ ΠΊΠ°ΠΊ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ.
Π Π²Π°ΡΠ΅ΠΌΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ. Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» django-ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡ ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π·Π΄Π΅ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΎΠΆΠΈΠ΄Π°Π», ΡΡΠΎ CSS Π±ΡΠ΄Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠΉ JS.
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ. ΠΡΠ° ΡΡΡΠΎΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter', 'compressor.filters.cssmin.rCSSMinFilter']
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΠΎ ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ min.js ΠΈΠ»ΠΈ min.css Π΄Π»Ρ ΡΠΆΠ°ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²?
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ. ΠΡΠ° ΡΡΡΠΎΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.