| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==[[Django 静的ファイルを提供する]]==
[[Django]] | [[Python]] |
==Django1[[Django]]1.3以降==
*http://docs.djangoproject.jp/ja/latest/howto/static-files.html
*大きな プロジェクトで、特に複数のアプリケーションからなる場合は、各アプリケーションが 持っている静的ファイルの集まりを複数扱うことになり、ややこしくなってきます。
*デフォルトでは、 INSTALLED_APPS に入っているアプリケーションの static/ サブディレクトリ
*INSTALLED_APPS に django.contrib.staticfiles が入っているこ とを確認
*ローカル環境での開発 で runserver を使っているか、 staticfiles_urlpatterns を URLconf U[[R]]Lconf に追加し てあるなら、これでセットアップは終わりです。
*ファイルをテンプレートで使いた場合、一番簡単な方法は コンテキストプロセッサを使うことです。次のようなテンプレートを書けます
<img src="{{ STATIC_URL STATIC_U[[R]]L }}images/hi.jpg" />
====静的ファイルのデプロイについて====
*ローカル環境での開発が終わり、プロジェクトをデプロイする準備ができたら
=====STATIC_URL STATIC_U[[R]]L を静的なファイルを指すパブリックな URL U[[R]]L に設定してくだ さい。 ( ほとんどの場合、デフォルト値である /static/ でうまく行きます )==========STATIC_ROOT STATIC_[[R]]OOT に、 collectstatic コマンドを使って静的な ファイルを集めたいファイルシステム上のパスを設定してください。=====
*例えば
STATIC_ROOT STATIC_[[R]]OOT = "/home/jacob/projects/mysite.com/sitestatic"
=====collectstatic コマンドを実行=====
./manage.py collectstatic
=====STATIC_ROOT STATIC_[[R]]OOT に含まれるファイルが STATIC_URL STATIC_U[[R]]L の場所で 公開されるように Web サーバを設定しデプロイ=====
==以前の方法==
*http://docs.djangoproject.com/en/dev/howto/static-files/
===基本方針===
*セキュリティ、およびパフォーマンスの理由から、Django セキュリティ、およびパフォーマンスの理由から、[[Django]] の静的ファイル提供機能を利用することは推奨されない。
*しかしながら開発時など、必要な場合は、以下の手順にて行う
urlpatterns = patterns('',
: 略
(r'^static/(?P<path>.*)$', 'django.views[[vi]]ews.static.serve', {'document_root': '/webroot/static/'}),
)
====実際のパスを設定ファイルに記述====
=====settings.py=====
STATIC_DOC_ROOT STATIC_DOC_[[R]]OOT = '/webroot/static/'
=====urls.py=====
urlpatterns = patterns('',
: 略
(r'^static/(?P<path>.*)$', 'django.views[[vi]]ews.static.serve', {'document_root': settings.STATIC_DOC_ROOT}),
)
urlpatterns = patterns('',
: 略
(r'^static/(?P<path>.*)$', 'django.views[[vi]]ews.static.serve', {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}),
)
if settings.DEBUG:
urlpatterns += patterns('',
(r'^static/(?P<path>.*)$', 'django.views[[vi]]ews.static.serve', {'document_root': settings.STATIC_DOC_ROOT}),
)

案内メニュー