2011-04-21 14 views
0

私はmysiteと呼ばれる新しいdjangoプロジェクトを持っています。 mysiteの中には静的というフォルダがあり、私のすべての画像はそこにあります。Djangoで画像をリンクする

from django.shortcuts import render_to_response 
def index(request): 
    return render_to_response('index.html',) 
:私は私の個人用サイトフォルダ内のこのviews.pyファイルを持っている

<html> 
<head></head> 
<body><img src = WHAT GOES HERE?? /> 
</html> 

:個人用サイト内

は、次の基本的なコードではindex.htmlという名前のファイルとテンプレートフォルダです

私のsettings.pyファイルに、STATIC_URL = '/ static /'

静止画像ファイルを正しく参照するには、imgタグ内に入る正確なテキストは何ですか(注:私は見ていませんドキュメントへのリンク用)。また、フォルダ/設定の構造を変更する必要がありますか?ありがとうございました。

私は次のタグ追加しました:
< IMG SRC = "{{}} STATIC_URL logo.jpgを" />

しかし、それはまだロードされません - それは正しいに行くしているようです(ブラウザの画像パスには127.0.0.1:8000/static/logo.jpgと書かれています)。これが正しく読み込まれるように変更する必要はありますか?私はその画像がその場所にあることを確認しました。

UPDATE:これは私が最終的にそれが動作するようになった方法です:

if settings.DEBUG: 
    urlpatterns += patterns('', 
     (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root':  sttings.MEDIA_ROOT}), 
) 

(私はMEDIA_URLの代わりstatic_urlを使用しています)。これを行う簡単な方法はありますか?ファイルに解決でしょう

のIMG SRC = "{{STATIC_URL}} hi.jpg"

答えて

0

David542、

あなたの構造は以下のようなものでなければなりません。

MyProject 
    \MySite 
     \static 

この静的フォルダは、runserverを使用するときに提供されます。運用環境に作業を移すときは、djangoの./manage.py collectstaticを使い、settings.pyファイルで指定した静的URLで静的メディアを提供してください。静的フォルダに画像がある場合は、/static/some_image.png

という名前で参照できるはずです。静的ファイルはバージョン1.3までDjangoには含まれていませんでした。 1.3よりも古い場合は、現在の設定がなぜ機能しないのかを説明します。 (これはあなたの問題だと思います)

これが役に立ちます。

編集:あなたのパスを入力して表示することはすべてあなたのために働いていて、快適であれば、実際に別の答えが述べたものを使用してを使用すると、静的なURLを変更するかのように彼らは自動的に動作するので、一致するようにしてください。

+0

@ wilbbe01私のDjangoバージョンは... >>> django.VERSION (1,3,0、 'final'、0) – David542

+0

組み込みの 'manage.py runserver'を使用していますか? – wilbbe01

+0

画像の権限は何ですか? – wilbbe01

0

イメージは "hi.jpg" と呼ばれている場合、それはこのようになります。 STATIC_URLディレクトリにアップロードし、あなたの例では、それは次のようになります。

/static/hi.jpg

+0

次のタグを追加しました:。しかし、それはまだロードされません - 正しいパスに行くようです(ブラウザの画像パスはhttp://127.0.0.1:8000/static/logo.jpgと言います)。これが正しく読み込まれるように変更する必要はありますか?私はその画像がその場所にあることを確認しました。 – David542

+0

「ロードしない」とは、具体的には何かを意味するものではありません。良いテストは、サーバーが実行されている間、この場合は "http://127.0.0.1:8000/static/logo.jpg"のURLに直接移動することです。イメージが見えますか?そうしないと、静的なホスティングが正しく設定されていません。 – mattv