Django 1.xで静的ファイルに取り組む方法についてたくさんのアドバイスがあります。これを行うためのベストプラクティスの方法はありますか?現在、Djangoで静的ファイルを提供するベストプラクティスは
答えて
Djangoで静的ファイルを提供するアプローチがあるかもしれませんが、Django 1.3は新しいオプションを導入しました。基本的には、静的メディアを含むプロジェクトレベルまたはアプリレベルで特定のディレクトリを定義することができます。次に、管理コマンド 'collectstatic'を使用して、プロジェクトディレクトリ内のすべての静的ファイルを、Webサーバーによって提供される別のディレクトリ(おそらくプロジェクトの外部)にコピーできます。これは、以前のアプローチの多くの複雑さを解決します。
1)サードパーティ製のアプリケーションでは、静的なファイルを標準的な方法で簡単に組み込むことができます。あなたのwebserverディレクトリから個別のpython/djangoモジュール内の場所にシンボリックリンクを作成する必要はありません。
2)ウェブサーバーが静的ファイルをホストできる場所をより詳細に制御できます。たとえば、プロジェクト内のすべての静的メディアをバージョン管理下で定義することはできますが、ファイルシステム上の任意の場所にコピーすることができます。これにより、Webサーバーをプロジェクト内の場所に向ける必要がなくなります。
3)は、ユーザーがFileFieldのようなものを使ってアップロードした静的メディアから決して変化しない静的メディアを分割します。これは、あなたのdevサーバにインストールするバージョンコントロールにサイトレベルの静的メディアを保持したいと思う可能性が高いためです。しかし、ユーザが投稿したコンテンツは別のディレクトリにアップロードされます(1.3より前のバージョンのdjangoと異なります)。
私はこの機能がコアにマージされたサードパーティのモジュールであったと思います。ここで
はドキュメントです: https://docs.djangoproject.com/en/dev/howto/static-files/
は、基本的にはいくつかの新しいsettings.pyの変数があります。
STATIC_ROOT - これはあなたのウェブサーバによって提供されるファイルシステム上のディレクトリです。 ./manage.py collectstaticを実行すると、プロジェクト内のすべての静的ファイルとそのアプリケーションがここで指定したディレクトリにコピーされます。
STATIC_URL - これは、あなたのコンテンツのベースとなるURLを表すために設定するURLです。この値を "/ static /"に設定すると、含まれている静的メディアのすべてのURLの前に "/ static /"が付加されます。この変数はテンプレートでも使用します。たとえば、あなたのテンプレートで、あなたのような何かを指定することができます:静的ファイルがコピーされ
<img src="{{ STATIC_URL }}logo.png">
STATIC_ROOT設定変数を指定していますが、静的ファイルをからコピーされどこの場所を提供する必要があります。これは、個々のDjangoアプリに "static //"という名前のディレクトリを作成することで行うことができます。これは、アプリ内のテンプレートの場合と同様です。 collectstaticコマンドを実行すると、Djangoはあなたのすべてのアプリケーションのすべての "静的/"ディレクトリからすべての静的ファイルをSTATIC_ROOTディレクトリにコピーします。 STATICFILES_DIRS設定変数を使用して、静的メディアをコピーするプロジェクトレベルのディレクトリを定義することもできます。
スタティックメディアを提供する方法はたくさんありますが、これはDjangoがサードパーティのモジュールをよりよく統合するのに役立つ素敵なAPIです。この機能が現在コアに含まれているという事実は、このアプローチがいくつかの勢いを増した可能性があるという示唆を与えるかもしれません。
希望します。 Joe
- 1. Djangoと静的ファイルの提供
- 2. HTTPS経由でDjangoの静的ファイルを提供するには?
- 3. django開発サーバーで静的ファイルを提供する方法
- 4. jax.wsで静的ファイルを提供する
- 5. djangoアプリケーションでの静的メディアの提供
- 6. 提供する静的ファイルは、Apache +ユニコーン
- 7. 提供する静的ファイル - (404)
- 8. Compojureから静的ファイルを提供
- 9. Djangoで静的ファイルを提供する際のセキュリティ上の問題?
- 10. pythonフラスコ - 静的ファイルの提供
- 11. ウェブページの静的ファイルの提供
- 12. 生産現場でFlaskではなくCDNから静的ファイルを提供
- 13. 静的ファイルindex.htmlをデフォルトで提供する
- 14. Node.js + RESTIFYで静的ファイルを提供する
- 15. レスポンスwebpackファイルローダーで静的pdfを提供
- 16. レールで静的なJSONオブジェクトファイルを提供
- 17. WPスーパーキャッシュ静的ファイルを提供するNginx(フロントエンドとして)
- 18. 春のwebappで静的ファイルを提供できません
- 19. python gtkアプリケーションでWebkitビューを使って静的ファイルを提供するには?
- 20. adminの静的ファイルをDjango 1.4のdjango.contrib.staticfilesで(1つのApacheサーバを使用して)提供するには?
- 21. Socket.IOの静的ファイルの提供パスを変更します
- 22. Liferay - 静的なコンテンツを提供
- 23. S3から静的資産を提供
- 24. サーバーのAPIを提供している間に静的ファイルを提供できますか?
- 25. phoenixフレームワークで静的ページを提供するには?
- 26. Djangoでの開発中に静的ファイルを提供することをお勧めします
- 27. 静的ファイルを提供していないレール
- 28. Spring MVC(3.1.1)の静的コンテンツの提供
- 29. 動的前に静的ページを提供するNginx
- 30. Djangoでユーザがアップロードしたファイルを提供するには?
Django 2.xはありますか? – DrTyrsa
いいえ、それはあなたが意味するものであればリリースを持っていません...質問は実際にはある意味が変わったように変更されました。フィードバックをお寄せいただきありがとうございます。 – SMTF