画像ギャラリーを必要とするサイトの django アプリに取り組んでいます。このサイトは非常にシンプルなので、データベースを使用しないことにしました。ギャラリー部分では、画像フォルダーからすべての画像ファイルを読み取り、ループ内でレンダリングされるテンプレートにそれらを送信するビューにループがあります。
import os
from django.shortcuts import render_to_response
def show_pics(request):
"""sends a list of files to the view"""
folder = '/static/images'
files = [os.path.join(folder, f) for f in os.listdir(folder) if '.jpg' in f]
return render_to_response('gallery.html', { 'files' : files })
そしてテンプレート:
<div id="gallery">
{% for file in files %}
<img src="{{ file }}" class="gallery-image" />
{% endfor %}
</div>
これは開発モードではうまく機能しますが ('/static/' で静的ファイルを提供するように URL を設定しました)、Web サーバーにアップロードすると画像がレンダリングされません。レンダリングされた html を見ると、次のようになります。
<div id="gallery"> </div>
静的 URL - http://mysite.com/static/images/some_image.jpgを介してランダムな画像にアクセスしようとすることで、静的 URL が Web サーバーで機能することを確認しました。css は確実に機能しています (心配しないでください。後で静的ファイル用に別のサーバーを使用します)。おそらく、本番サーバーは python2.5 を実行していますが、私は 2.6 を実行しています (両方とも django 1.1 を使用しています)。何かご意見は?