2009年10月31日土曜日

Django 作業メモ:django に静的ファイルを読ませるのに嵌る

 今作っているアプリで静的ファイルを読ませる必要が出てきた。

 以前に嵌ったことを思い出してこのブログを調べると、ピッタリなエントリーがあった。このエントリーを見て書いたソースをコピペして...、動かない。
 Page not found のメッセージではちゃんと media/ は定義されてるし、なぜ?

 ふと、コンソールを見ると他の URL を書き換えていない静的ファイルの読み出しはリクエストが失敗しているが、URL を書き換えたものだけが失敗していない。
 ブラウザに直接静的ファイルのディレクトリの URL を入力すると、とんでもないディレクトリ(C:\Python262\lib\site-packages\django/contrib/admin/media\)にアクセスできない、と出てくる。

 色々やった結果、
 django.views.static.serve を呼び出すパターンに 'media' は使えないsettings.py の中で定義している ADMIN_MEDIA_PREFIX と同じ文字列は使えない

# ただし、root の urls.py 以外ではぶつかってもよさそう。

 ということがわかった。パターンを 'media' からドキュメントにある 'site_media' に変更して解決。うーん、古いアプリケーションでは使えていたのだが。1.0 からこうなったのだろうか?元にしたアプリケーションではアプリケーション名が URL に含まれたのでこの問題が起きなかった。
 面倒くさいから深追いはしないが...。

0 件のコメント:

コメントを投稿