Django 静的ファイル収集
静的ファイルの処理
DEBUG = False
の場合、スタイルシート、JavaScript、画像などのプロジェクト内の静的ファイルは、Djangoでは自動的に処理されません。
DEBUG = True
の場合は、アプリケーションのstatic
フォルダに配置するだけでした。
DEBUG = False
の場合、静的ファイルを使用するには、静的ファイルを収集して指定されたフォルダーに配置する必要があります。
静的ファイルの収集
プロジェクトに必要なすべての静的ファイルを収集するには、まずsettings.py
ファイルでSTATIC_ROOT
プロパティを指定します。
これは、静的ファイルを収集するフォルダを指定します。
フォルダには好きな名前を付けることができますが、ここではproductionfiles
と呼びます。
my_tennis_club/my_tennis_club/settings.py
:
.
.
STATIC_ROOT = BASE_DIR / 'productionfiles'
STATIC_URL = 'static/'
.
.
このフォルダーを手動で作成し、プロジェクトのすべての静的ファイルを収集してこのフォルダーに入れることもできますが、Djangoにはこれを行うコマンドが用意されています。
py manage.py collectstatic
これにより、次の結果が生成されます。
131 static files copied to 'C:\Users\your_name\myworld\my_tennis_club\productionfiles'.
なんとファイルが131個もあります。これは、Djangoに組み込まれている管理者ユーザーインターフェイスによるものです。この機能を本番環境で維持するために、スタイルシート、フォント、画像、JavaScriptを含む多数のファイルが付属しています。
my_tennis_club
members/
my_tennis_club/
productionfiles/
admin/
myfirst.css
機能を確かめよう
これでプロジェクトの静的ファイルが収集されました。WhiteNoiseをインストールしていれば、静的ファイルの追加の章の例が最終的に機能するようになります。
サーバーを起動して結果を確認します。
py manage.py runserver
そして、自分のブラウザ127.0.0.1:8000/testing/
で結果をチェックしてください。
例
my_tennis_club/members/templates/template.html
:
{% load static %}
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="{% static 'myfirst.css' %}">
<body>
{% for x in fruits %}
<h1>{{ x }}</h1>
{% endfor %}
</body>
</html>
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。