Djangoで静的ファイルを扱う(開発環境)
静的ファイルって?
css とか javascript とか image です。
こんな風にディレクトリを掘ります
atasatamatara@dev:~/skz2_proj$ tree . |-- README |-- __init__.py |-- config.py |-- data_skz.db |-- manage.py |-- settings.py |-- skz2 | |-- __init__.py | |-- admin.py | |-- context_processors.py | |-- models.py | |-- templatetags | | |-- __init__.py | | |-- cust_filter.py | |-- tests.py | |-- tools.py | |-- urls.py | |-- views.py |-- static | |-- css | | `-- base.css | `-- js | `-- base.js |-- templates | |-- base.html | |-- index.html | `-- skz2.html |-- urls.py
1.3からなんかMEDIA と STATIC と増えた
あんまりよくわかってないけど、下記の通りにやったら静的なファイルを扱えた。
settings.py
#別にSTATIC_ROOTになにかかくわけじゃない STATIC_ROOT = '' #これでプロジェクトのルートをとってくる import os BASE_DIR = os.path.abspath(os.path.dirname(__file__)) #STATICFILES_DIRS に書きましょう STATICFILES_DIRS = ( os.path.join(BASEDIR, 'static'), ) #CONTEXT_PROCESSORSにも追記しましょう TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.csrf', 'skz2.context_processors.display_user', 'django.core.context_processors.media', #ここ! 'django.core.context_processors.static', 'django.contrib.messages.context_processors.messages', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.request' )
プロジェクトのurls.py
from django.conf import settings ...(略)... #一応開発用の時ということにする if setting.DEBUG: (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root' : settings.STATIC_ROOT})
これだけでした
知れば簡単。知らないとハマる。また、それだけのこと。
ちなみに
もうすぐDjango 1.4らしいですね