рддреЛ рдореБрдЭреЗ рдбрд┐рдмрдЧ = рдлрд╛рд▓реНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ django-compressor рдорд┐рд▓рд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдбреАрдмрдЧ = рдЯреНрд░реВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ django-compressor рд╕рд╣реА рдпреВрдЖрд░рдПрд▓, рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд╕рдмрдХреБрдЫ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Django рд╕реНрд╡рдпрдВ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП 404 рджреЗрддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ
STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")
рдФрд░ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ static_media рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдВрдкреНрд░реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ CACHE/css/bfdeac875f7a.css рдлрд╝рд╛рдЗрд▓ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред
рдЙрддреНрдкрдиреНрди HTML рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░, рдореИрдВ рдпрд╣ рднреА рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ
<link rel="stylesheet" href="/static/CACHE/css/bfdeac875f7a.css" type="text/css" />
рд▓реЗрдХрд┐рди рдЬрдм рдкреЗрдЬ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рд░рдирд░рд╡рд░ рдХрд╣рддрд╛ рд╣реИ:
[21/Dec/2012 22:28:44] "GET /static/CACHE/css/bfdeac875f7a.css HTTP/1.1" 404 276
рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ? рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ
'django.core.context_processors.static',
рдХреЛ TEMPLATE_CONTEXT_PROCESSORS
рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛'compressor.finders.CompressorFinder',
рдХреЛ STATICFILES_FINDERS
рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛'compressor',
рд╕реЗ INSTALLED_APPS
рдзрдиреНрдпрд╡рд╛рдж!
рдирдорд╕реНрддреЗ,
рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЖрдкрдХреЗ рд╕реЗрдЯрдЕрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
рдзрдиреНрдпрд╡рд╛рдж
рдирдорд╕реНрддреЗ,
рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде Django 1.4.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
...
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")
# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(PROJECT_DIR, "static"),
)
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
'compressor.finders.CompressorFinder',
)
COMPRESS_PRECOMPILERS = (
('text/coffeescript', 'coffee --compile --stdio'),
('text/x-scss', 'sass --scss {infile} {outfile}'),
)
...
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
...
'compressor',
...
)
...
рдЬрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ static_media
рднреАрддрд░ рд░рдЦрд╛ рд╣реИ, рд╡реЗ /static/
url рд╕реЗ рднреА рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реНрдЯреИрдЯрд┐рдХрдлрд╛рдЗрд▓реНрд╕ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ ... рдореИрдВрдиреЗ Django 1.3 рд╕реЗ рднреА рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛, рдЕрдЧрд░ рдпрд╣ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдХреВрдмрдбрд╝ рд╣реЛрдЧрд╛ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╕рд╛рде рд╣реА, рдЬрдм рдбреАрдмрдЧ рд╕рддреНрдп рд╣реЛрддрд╛ рд╣реИ рддреЛ рд░рдирд░рд╡рд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдореЗрд░реЗ static_media
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рдЪреВрдХ рдЧрдпрд╛ рдерд╛: рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рдЬрдм DEBUG _True_ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рдереАред
рд╡реИрд╕реЗ рднреАред рдЬрдм DEBUG = False, рдЖрдкрдХрд╛ рд░рдирд░рд╡рд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╕реНрдЯреИрдЯрд┐рдХрдлрд╛рдЗрд▓реНрд╕ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред DEBUG рдХреЗ рдЧрд▓рдд рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреА рд╕реНрдЯреИрдЯрд┐рдХрдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдареАрдХ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░рдирд░рд╡рд░ рдХреЛ --insecure рдлреНрд▓реИрдЧ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬ: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ-рд╡рд┐рдХрд▓реНрдк --- рдЕрд╕реБрд░рдХреНрд╖рд┐рдд
рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?
рд╣реЗ рднрдЧрд╡рд╛рди, рдореЗрд░рд╛ рдмреБрд░рд╛ред рдореИрдВрдиреЗ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдореВрд▓ рдкреНрд░рд╢реНрди рдореЗрдВ "рд╕рддреНрдп" рдФрд░ "рдЧрд▓рдд" рд╕реНрд╡рд┐рдЪ рдХрд░ рджрд┐рдпрд╛ рдерд╛, рднреНрд░рдо рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ!
рдФрд░ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рдЪреВрдХ рдЧрдпрд╛ рдерд╛: рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рдЬрдм DEBUG _True_ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рдереАред
рд╡реИрд╕реЗ рднреАред рдЬрдм DEBUG = False, рдЖрдкрдХрд╛ рд░рдирд░рд╡рд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╕реНрдЯреИрдЯрд┐рдХрдлрд╛рдЗрд▓реНрд╕ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред DEBUG рдХреЗ рдЧрд▓рдд рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреА рд╕реНрдЯреИрдЯрд┐рдХрдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдареАрдХ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░рдирд░рд╡рд░ рдХреЛ --insecure рдлреНрд▓реИрдЧ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬ: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ-рд╡рд┐рдХрд▓реНрдк --- рдЕрд╕реБрд░рдХреНрд╖рд┐рдд
рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?