Werkzeugミドルウェアを使用して作成しました。nginxサーバーを使用するほど美しくもパフォーマンスも良くありませんが、次のような役割を果たします。
settings.pyでSTATIC_ROOTを設定します
# project/settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__)))
STATIC_ROOT = BASE_DIR+'/static-collected'
このフォルダからファイルを提供するようにWerkzeugに指示するより
# project/wsgi.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
(...)
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
(...)
import os
from werkzeug.wsgi import SharedDataMiddleware
print 'Installing WSGI static files server middleware'
application = SharedDataMiddleware(application, {
'/static': os.path.join(BASE_DIR, 'static-collected'),
})
DEBUG = Trueの場合、Djangoはファイルを提供します。DEBUG = Falseの場合、Werkzeugは静的に収集されたフォルダーからファイルを提供します。これを機能させるには、DEBUG=Falseを使用するサーバーでcollectstaticを実行する必要があります。
Obs:何らかの理由で、Werkzeugは見つからないファイルに対して404ではなく500を提供します。奇妙ですが、それでも機能します。理由がわかっている場合は、コメントしてください。