私は新しいDjangoプロジェクトを計画しており、すべてのものを正しく取得したいと考えています。私は、プロジェクトのディレクトリレイアウトをどのように整理するかの問題を見つけました。幸運にも、そこには良いプロジェクトテンプレートの例がかなりあります。それでも、私が頭の中で苦労しているのは、Djangoのテンプレートと静的ファイルの場所
です。アプリケーションによってサブディレクトリに分割されたプロジェクトルートの別のディレクトリにテンプレートファイルを置くことをお勧めします。したがって、テンプレートはアプリディレクトリ内に配置されません。私はアプリケーションロジックを表現ロジックから分離したいので、それは私には論理的です。しかし、静的ファイルはどうですか?ここでは、一般的なプラクティスは、静的ファイルをアプリケーションディレクトリ内に配置し、開発時にはプロジェクトルートの下にある '静的'ディレクトリ(collectstatic)にロードすることです。そして、私はこの論理を理解していません。静的ファイル(つまり、js、css、images)は通常、アプリケーションコード内ではなくテンプレート内でアクセスされるため、プレゼンテーションロジックにカウントします。それでは、テンプレートのように格納されていないのはなぜですか?プロジェクトルートの下のディレクトリで、単一のアプリケーションのサブディレクトリがありますか?
私はいつでもどこでもこれらのファイルを保存することができますが、人がこのようにしている理由があると思います。この理由は何でしょうか?
アプリのディレクトリ内のテンプレートと静的ファイルを整理することは、差し替え可能なアプリにとって意味があると思います。しかし、私はプラグイン可能なアプリケーションを作成する予定がない場合は利点はありませんが、そこにはありませんか?プロジェクトの新しいバージョンを導入するたびに、単に 'collectstatic'を呼び出すオーバーヘッドがあります。 – j0ker
@ J0ker、それは議論の余地があり、完全にあなたの呼び出しです。時には、それは別々にパッケージ化されたアプリケーションの場合、私は自分自身が 'app/static'を使っていることがわかります。それ以外の場合は、コアウェブサイトに関連するすべてのアプリケーションのために、私は 'site_media'フォルダを使用します。とにかくそれを使用するファブリックスクリプトを使用するので、 "collectstatic"を呼び出すオーバーヘッドは私のために削除されます。 PLUS <静的ファイルストレージバックエンドを設定すると、amazon S3にcollectstaticアップロードすることができます。 –