私は多くのアプリケーションで構成されるDjango(1.3)プロジェクトを開発しています。static
各アプリケーションには、独自のディレクトリの下に独自の静的ファイルがあります。project_static
さらに、 jQueryなどのさまざまなアプリケーションに共通する静的ファイルを含むディレクトリを追加しました。
私がすぐに遭遇する問題は、名前の衝突の問題です。デフォルトでは、アプリケーションで分類せずにcollectstatic
、すべてをグローバルディレクトリの下に配置します。static
各アプリケーションには(たとえば)というファイルがあるため、これは私には機能しませんcss/screen.css
。
私がそれを解決した方法は、名前空間の静的ファイルdirsdjango.contrib.staticfiles.finders.AppDirectoriesFinder
から削除しSTATICFILES_FINDERS
て使用することでした。そのため、私の設定は次のようになります。
STATICFILES_DIRS = (
os.path.join(PROJECT_PATH, 'project_static'),
('my_app', os.path.join(PROJECT_PATH, 'my_app', 'static')),
('another_app', os.path.join(PROJECT_PATH, 'another_app', 'static')),
...
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
)
問題は、この方法で他のすべてのアプリケーションの静的ファイルが失われることです(例django.contrib.admin
)。もちろん、手動で管理者を追加することもできますが、ディレクトリ構造が異なる管理者を壊さずにこれを行う方法がわかりません。
複数のアプリケーションで静的ファイルを管理するためのより良い方法はありますか?