Django-compressor: рдЖрдкрдХреЗ рдкрд╛рд╕ рдСрдлрд╝рд▓рд╛рдЗрди рд╕рдВрдкреАрдбрд╝рди рд╕рдХреНрд╖рдо рд╣реИ рд▓реЗрдХрд┐рди рдСрдлрд╝рд▓рд╛рдЗрди рдореЗрдирд┐рдлреЗрд╕реНрдЯ рд╕реЗ рдХреБрдВрдЬреА рдЧреБрдо рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рджрд┐рд╕ре░ 2011  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: django-compressor/django-compressor

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдСрдлрд╝рд▓рд╛рдЗрди рдкреАрдврд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХрдВрдкреНрд░реЗрд╕ рдкреНрд░рдмрдВрдзрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж рд╣реЛрддреА рд╣реИред рдХреНрдпрд╛ рдЙрди рд╕реАрдПрд╕рдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЕрдкрдиреА рдХреБрдВрдЬреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП?

рдореЗрд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕:
COMPRESS_URL = STATIC_URL
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_OFFLINE = рд╕рддреНрдп
COMPRESS_OFFLINE_MANIFEST = "manifest.json" # CACHE рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter','compressor.filters.cssmin.CSSMinFilter']
COMPRESS_YUI_BINARY = os.path.join(PROJECT_ROOT, 'bin/yui.sh')
COMPRESS_JS_FILTERS = ['compressor.filters.closure.ClosureCompilerFilter']
COMPRESS_CLOSURE_COMPILER_BINARY = os.path.join(PROJECT_ROOT, 'рдмрд┐рди/рдХреНрд▓реЛрдЬрд░.рд╢')
COMPRESS_CLOSURE_COMPILER_ARGUMENTS = "--language_in=ECMASCRIPT5"

COMPRESS_STORAGE = 'compressor.storage.GzipCompressorFileStorage' # WTF рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдЖрдкрдХреЗ рдкрд╛рд╕ рдСрдлрд╝рд▓рд╛рдЗрди рд╕рдВрдкреАрдбрд╝рди рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рдСрдлрд╝рд▓рд╛рдЗрди рдореЗрдирд┐рдлреЗрд╕реНрдЯ рд╕реЗ рдХреБрдВрдЬреА "b68ba4d2116295c56138e439f1b03a03" рдЧрд╛рдпрдм рд╣реИред рдЖрдкрдХреЛ "python manage.py compress" рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЕрдиреБрд░реЛрдз рд╡рд┐рдзрд┐: GET
рдЕрдиреБрд░реЛрдз URL: http://127.0.0.1 :8000/
Django рд╕рдВрд╕реНрдХрд░рдг: 1.3.1
рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░: OfflineGenerationError
рдЕрдкрд╡рд╛рдж рдорд╛рди:
рдЖрдкрдХреЗ рдкрд╛рд╕ рдСрдлрд╝рд▓рд╛рдЗрди рд╕рдВрдкреАрдбрд╝рди рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рдСрдлрд╝рд▓рд╛рдЗрди рдореЗрдирд┐рдлреЗрд╕реНрдЯ рд╕реЗ рдХреБрдВрдЬреА "b68ba4d2116295c56138e439f1b03a03" рдЧрд╛рдпрдм рд╣реИред рдЖрдкрдХреЛ "python manage.py compress" рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЕрдкрд╡рд╛рдж рд╕реНрдерд╛рди: /srv/www/project/lib/python2.6/site-packages/compressor/templatetags/compress.py render_offline, рд▓рд╛рдЗрди 56 рдореЗрдВ

Variable    Value
forced  
False
self    
<compressor.templatetags.compress.CompressorNode object at 0x966764c>
compressor  
<compressor.js.JsCompressor object at 0x966732c>
key 
'b68ba4d2116295c56138e439f1b03a03'
offline_manifest    
{u'32e9172ad82f3b6d238cc7423a7f10c7': u'<link rel="stylesheet" href="/static/CACHE/css/a50381ce7ba9.css" type="text/css" media="screen" /><link rel="stylesheet" href="/static/CACHE/css/62afac347423.css" type="text/css" /><link rel="stylesheet" href="/static/CACHE/css/f336d54a5423.css" type="text/css" media="screen" /><link rel="stylesheet" href="/static/CACHE/css/5cf783d07673.css" type="text/css" />',
 u'b1bd8f68f96dfa53380b10881f8eb691': u'<script type="text/javascript" src="/static/CACHE/js/19522c6ee302.js"></script>',
 u'c6d6d2948d18188277e7a987c71e2bc3': u'<script type="text/javascript" src="/static/CACHE/js/90bda37980a5.js"></script>',
 u'dbe0b22545cd64193d8a875c3226b1ea': u'<script type="text/javascript" src="/static/CACHE/js/71056921eb77.js"></script>'}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдРрд╕рд╛ рд╣реА рдХреБрдЫ рд╣реЛ рдЬрд╛рдПред рдХрдВрдкреНрд░реЗрд╕ рдореЗрдВ рдХреЛрдИ рдЗрдирд▓рд╛рдЗрди рдХреЛрдб рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЬреЛ рдХреБрдВрдЬреА рдЧреБрдо рд╣реЛрдиреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреА рд╣реИ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдпрд╣ рд╣реИ? рдЗрд╕ рдкрд░ рдмрд╛рдХреА рд╕рднреА рдХрдореЗрдВрдЯ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреЗ рд╣реИрдВ

рд╕рднреА 17 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк django_compressor рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдкреАрдИрдкреАрдЖрдИ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рд╣реИред рдореИрдВ рдирд╡реАрдирддрдо рджреЗрд╡ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж

рдореБрдЭреЗ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЗрдирд▓рд╛рдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

рдпрд╣ рдореЗрд░рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдерд╛ред

{% compress js %}
    <script type="text/javascript">
    xhr_cidades = '{% url cidades_consulta %}';
    xhr_imoveis = '{% url imoveis_consulta %}';
    xhr_empresas = '{% url empresas_consulta %}';
    xhr_empreend = '{% url empreendimentos_consulta %}';
    </script>

    <script type="text/javascript" src="{{ STATIC_URL }}jquery-1.6.1.min.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}jquery-ui/jquery-ui-1.8.13.custom.min.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}jquery-ui/jquery-ui-datepicker-pt-BR.min.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}jquery-ui/jquery-ui-combobox.min.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}jquery-meiomask-1.1.3.min.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}jquery-scrollto-1.4.2.min.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}jquery-dotimeout-1.0.min.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}base.js"></script>
{% endcompress %}

рдФрд░ рдпрд╣ рд╡рд╣ рдбреЗрдЯрд╛ рдерд╛ рдЬреЛ Django рдХрдВрдкреНрд░реЗрд╕рд░ рдПрдХ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред

['\n    <script type="text/javascript">\n        xhr_cidades = \'', '<django.template.defaulttags.URLNode object at 0x23cf1d0>',
 "';\n        xhr_imoveis = '", '<django.template.defaulttags.URLNode object at 0x23cf750>', "';\n        xhr_empresas = '",
 '<django.template.defaulttags.URLNode object at 0x23cf210>', "';\n        xhr_empreend = '",
 '<django.template.defaulttags.URLNode object at 0x23cf2d0>', '\';\n    </script>\n\n    <script type="text/javascript" src="',
 '<Variable Node: STATIC_URL>', 'jquery-1.6.1.min.js"></script>\n    <script type="text/javascript" src="', '<Variable Node:
 STATIC_URL>', 'jquery-ui/jquery-ui-1.8.13.custom.min.js"></script>\n    <script type="text/javascript" src="', '<Variable
 Node: STATIC_URL>', 'jquery-ui/jquery-ui-datepicker-pt-BR.min.js"></script>\n    <script type="text/javascript" src="',
 '<Variable Node: STATIC_URL>', 'jquery-ui/jquery-ui-combobox.min.js"></script>\n    <script type="text/javascript" src="',
 '<Variable Node: STATIC_URL>', 'jquery-meiomask-1.1.3.min.js"></script>\n    <script type="text/javascript" src="',
 '<Variable Node: STATIC_URL>', 'jquery-scrollto-1.4.2.min.js"></script>\n    <script type="text/javascript" src="', '<Variable
 Node: STATIC_URL>', 'base.js"></script>\n']

рдХреБрдВрдЬреА {% compress %} рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдПрдХ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рд╣реИред рдпрджрд┐ рд╡рд╣ рдбреЗрдЯрд╛ рд╣рд░ рдмрд╛рд░ рдмреНрд▓реЙрдХ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдмрджрд▓рддрд╛ рд╣реИ (рдКрдкрд░ URLNode рдкрд░ 0x23cf750 рдкрддрд╛ рджреЗрдЦреЗрдВ), рддреЛ рдПрдХ рдкреЗрдЬ рд▓реЛрдб рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреА рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЧрдИ рдПрдХ рдЕрд▓рдЧ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, {% compress %} рдмреНрд▓реЙрдХ рд╕реЗ рдЗрдирд▓рд╛рдЗрди рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдЖрдк рдбреЗрдЯрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдВрдкреНрд░реЗрд╕рд░.рдХреИрд╢ рдХреЗ get_hexdigest рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ/рд╡реЗрдм рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рдореЗрдВ рд╕реБрд░рд╛рдЧ рджреЗрдЦреЗрдВред

рдЖрд╢рд╛ рд╣реИ рдпреЗ рдорджрдж рдХрд░реЗрдЧрд╛,

рдЗрд╕реЗ рд╡рд┐рдХрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ #154 . рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдПрдХ рдЗрдирд▓рд╛рдЗрди рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рдереАред рдпрд╣ рдирд╡реАрдирддрдо рджреЗрд╡ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдерд╛ред рдзрдиреНрдпрд╡рд╛рдж @viotti

{% compress js inline %}
<script type="text/javascript" src="/static/js/pages/calculator.js"></script>

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╢рд╛рдпрдж рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ #154 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИред

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ. рдореЗрд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕.py рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

### COMPRESSION - django_compressor
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
COMPRESS_PARSER = 'compressor.parser.LxmlParser'
COMPRESS_CSS_FILTERS = [
    'compressor.filters.css_default.CssAbsoluteFilter',
    'compressor.filters.cssmin.CSSMinFilter',
    ]
COMPRESS_JS_FILTERS = [
    'compressor.filters.closure.ClosureCompilerFilter',
]

COMPRESS_CLOSURE_COMPILER_BINARY = 'java -jar /path/to/compiler.jar'

.html рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореМрдЬреВрдж рдЗрдирд▓рд╛рдЗрди рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ .html рд╕реЗ рдХрдИ css/js рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВред рдпреЗ рд╕рднреА {% рдХрдореНрдкреНрд░реЗрд╕ css/js %} рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрдВрдкреНрд░реЗрд╕реНрдб рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ .html рдлрд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдП рдЧрдП рд╕рднреА js рдХреЛрдб рдХреЛ рдХрдВрдкреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ (рдХреЗ рдмреАрдЪ рдХреЛрдб)

рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рджреЗрд╡ рд╢рд╛рдЦрд╛ рдореЗрдВ рднреА, {{ STATIC_URL }} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣реЗрдХреНрд╕ рдкреАрдврд╝реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирдП рд╣реЗрдХреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдпрд╛ рдореЗрдирд┐рдлреЗрд╕реНрдЯ.рдЬреЗрд╕рди рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╣реЗрдХреНрд╕ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди: рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ JS рд╕реНрдкреИрди рдХреЛ рдХрдВрдкреНрд░реЗрд╕ рди рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рд╕реНрдЯрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдХрдВрдкреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдмрд╛рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддрд╛ рд╣реИред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖: рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЗ рдмрдЬрд╛рдп рджреЛ http рдЕрдиреБрд░реЛрдзред рдорд╛рд╕реНрдЯрд░ рдЬреЗрдПрд╕/рд╕реАрдПрд╕рдПрд╕ рдХреЛ рд╕рднреА рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рд▓реЗ рдЬрд╛рдХрд░ рдПрдХ рдореЗрдВ рдШрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ DRY рдФрд░ http рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдЪрдпрди рди рдХрд░рдирд╛ рдкрдбрд╝реЗ :)

рдРрд╕рд╛ рд╣реА рдХреБрдЫ рд╣реЛ рдЬрд╛рдПред рдХрдВрдкреНрд░реЗрд╕ рдореЗрдВ рдХреЛрдИ рдЗрдирд▓рд╛рдЗрди рдХреЛрдб рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЬреЛ рдХреБрдВрдЬреА рдЧреБрдо рд╣реЛрдиреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреА рд╣реИ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдпрд╣ рд╣реИ? рдЗрд╕ рдкрд░ рдмрд╛рдХреА рд╕рднреА рдХрдореЗрдВрдЯ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреЗ рд╣реИрдВ

@altryne : рдпрд╣ рдПрдХ рдЕрдиреБрдорддрд┐ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡реЗрдмрд╕рд░реНрд╡рд░/django рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдЕрдзрд┐рдХ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ 500 рдкреЗрдЬ рд╡рд╛рд▓реА рдПрдХ Django рдЪреАрдЬ рдереАред рд╕рдВрдкреАрдбрд╝рди рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде, django рдиреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд┐рдирд╛ 500 рдкреГрд╖реНрда рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рд╕реНрд╡рдпрдВ рдореЗрдВ 500 рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХреАред

рдЗрд╕рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдорд┐рд▓реА:
http://chriskief.com/2013/09/18/django-compressor-offlinegenerationerror-and-500-html-handler500/

рд╣рд╛рдп рд╕рдм рд▓реЛрдЧ, chriskief.com рдХрд╛ рд▓рд┐рдВрдХ рдорджрджрдЧрд╛рд░ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ "{{myvar}}" рдЬреИрд╕реЗ django рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рдереЗред рдореИрдВ рдЙрдиреНрд╣реЗрдВ COMPRESS_OFFLINE_CONTEXT рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рд╛рдкрддрд╛ рдХреБрдВрдЬреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрдВрдкреНрд░реЗрд╕рд░ рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪрд░ рдХреЗ рд╕рд╛рде рд▓реЗ рд▓рд┐рдпрд╛, рддреЛ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдареАрдХ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ 500 рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рдЬреЛ рдорд╛рдирдХ django рддреНрд░реБрдЯрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЕрдкрд╛рдЪреЗ "рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреГрд╖реНрда"ред рдореБрдЭреЗ рдЕрднреА рддрдХ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ COMPRESS_OFFLINE_CONTEXT рдореЗрдВ рдХреЗрд╡рд▓ рд▓рд╛рдкрддрд╛ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИрдВ рдпрд╛ рдпрджрд┐ {% url ...%} рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИрдВред

рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреА рддреИрдирд╛рддреА рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

{% compress css %}
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap-social.css' %}">
<link rel="stylesheet" type="text/css" href="{% sass_src 'css/base.scss' %}">
{% endcompress %}

рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдХ sass_src рдЯреИрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

shezi picture shezi  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

albertyw picture albertyw  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dasloss picture dasloss  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bobort picture bobort  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

polmuz picture polmuz  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ