多くのアプリケーションで構成されたDjango(1.3)プロジェクトを開発中です。各アプリケーションには、独自のstatic
ディレクトリの下に独自の静的ファイルがあります。さらに、project_static
というディレクトリを追加しました。このディレクトリには、jQueryなどのさまざまなアプリケーションで共通の静的ファイルが含まれている必要があります。Djangoで複数のアプリケーションの静的ファイルを管理する
私が直面する問題は、名前の衝突の問題です。デフォルトでは、collectstatic
はすべてをアプリケーションで分類せずに、グローバルなstatic
ディレクトリの下に置くだけです。これは私のためには機能しません。各アプリケーションは、例えばcss/screen.css
というファイルを持っています。
私はそれがSTATICFILES_FINDERS
からdjango.contrib.staticfiles.finders.AppDirectoriesFinder
を削除し、namespaced static files dirsを使用している解決方法は、私の設定は今
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
。もちろん、手動で管理者を追加することもできますが、別のディレクトリ構造を持つ管理者を壊さずにこれを行う方法がわかりません。
複数のアプリケーションで静的ファイルを管理するより良い方法はありますか?
私たちがnginxを使って静的なファイルを提供しているのなら、これは依然として好ましい方法ですか? (静的なファイルを保持、アプリケーション自体のテンプレート) – Dineshkumar
うん。プロジェクトですべての資産を管理する必要があります。 –