[解決済み] Django の collectstatic は何のためにあるのか?
質問
これはおそらく愚かな質問だと思いますが、私の頭の中でピンとこないのです。
Django では、アプリに固有の静的ファイル (すなわち css や js) はすべて、 という名前のフォルダに置くのが慣例です。 static . つまり、このような構造になります。
mysite/
manage.py
mysite/ --> (settings.py, etc)
myapp/ --> (models.py, views.py, etc)
static/
で
mysite/settings.py
を持っています。
STATIC_ROOT = 'staticfiles'
で、コマンドを実行すると
python manage.py collectstatic
というフォルダが作成されます。
staticfiles
というフォルダをルートレベル (つまり
myapp/
)
これのどこがいいんだ?私のすべての静的ファイルのコピーを作成しているだけではありませんか?
どのように解決するのですか?
複数のアプリの静的ファイルを1つのパスに集める
さて、単一の Django
プロジェクト
は、複数の
アプリ
を使用する場合があります。したがって、そのような場合は、1 つの
myapp
となっていますが、実際には
myapp1
,
myapp2
など
個々のアプリの内部から単一のフォルダーにコピーすることで、フロントエンドの Web サーバー (例: nginx) をその単一のフォルダーに指定することができます。
STATIC_ROOT
を指すようにし、静的ファイルを 1 つの場所から提供することができます。
による永続的な URL ManifestStaticFilesStorage
バージョン管理のためにファイル名に追加される MD5 ハッシュについてのメモです。のデフォルトの動作の一部ではありません。
collectstatic
のデフォルトの動作ではありません。
settings.STATICFILES_STORAGE
はデフォルトで
StaticFilesStorage
(これはそうしません)
MD5 ハッシュを使用するように設定した場合、例えば
ManifestStaticFilesStorage
を使用するように設定すると、その動作が追加されます。
このストレージの目的は、古いファイルを提供し続けることです。 ページがまだそれらのファイルを参照している場合、古いファイルを提供し続けるためです。 またはサード パーティのプロキシ サーバーによってキャッシュされている場合などです。さらに、次のような場合に非常に役に立ちます。 に展開されたファイルに遠い将来の Expires ヘッダを適用したい場合に非常に役に立ちます。 ロード時間を短縮することができます。
関連
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】DEBUG=Falseを設定すると、なぜdjangoの静的ファイルアクセスに失敗するのですか?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] pycharmがタブをスペースに自動変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?