新しいDjango 1.3静的ファイルフレームワークに関する一般的な質問があります。django staticfiles at url root
Django 1.3で導入された新しいDjango staticfile機能が本当に好きです。通常、STATIC_URL = "/ static /"を設定し、テンプレートに{{STATIC_URL}}テンプレートタグを入力します。開発サーバーが静的ファイルを自動的に提供し、すべてのコンテンツが期待どおりに提供されるのは素晴らしい方法です。
しかし、私は静的メディアがURLルートにマウントされているレガシーサイトで作業しています。たとえば、静的URLへのパスは次のようになります。
example.com/css/master.css
example.com/images/logo.png
example.com/js/site.js
「静的」URL名前空間は使用されません。
新しい静的ファイル機能を静的な名前空間を使用せずに上記のURLに提供する方法があるかどうかは疑問でしたが、新しい静的ファイルフレームワーク(開発サーバー、等)。私はSTATIC_URL = ""とSTATIC_URL = "/"を設定しようとしましたが、どちらも希望の効果がないようです。
静的ファイルを名前空間なしで提供するように設定する方法はありますか?ご検討いただきありがとうございます。これは、DEBUG devのサーバーのメディアをマッピングします
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
)
if settings.DEBUG:
urlpatterns += static('/css/', document_root='app_root/path/to/css/')
urlpatterns += static('/images/', document_root='app_root/path/to/images/')
urlpatterns += static('/js/', document_root='app_root/path/to/js/')
urls.py:
ありがとうございます。テンプレートでは、私はまだ{{STATIC_ROOT}}か/ css /、/ images /、/ js/....のままにしておきますか? –
これは 'python manage.py collectstatic'では収集できないので、もはや静的なアプリケーションの一部ではありません。 '/ css/foo.css'のようなプレーンなURLを使うだけです。これらは個々の場所から明示的に提供されています。彼らはジャンゴのプロジェクト空間の外にも存在することができます。 – jdi
document_rootは '/'で始めるべきではありません。例えば 'urlpatterns + = static( '/ css /'、document_root = 'app_root/path/to/css /'のようにdjangoプロジェクトのルートディレクトリを指定する必要があります。 ) ' –