[Django] Static files


Static File

  • 静的ファイル
  • 応答時に何も処理することなくファイル内容を直接表示できるファイル
  • コンテンツを変更するファイルではなくユーザーの要望に応じて
  • 1)静的ファイル構成

  • django.contrib.staticfilesINSTALLED APPS含むか
  • settings.pyで定義したSTATIC_URL
  • テンプレートの静的テンプレートを使用して指定された相対パス構築URLをマークする
  • アプリケーションの静的フォルダに静的ファイルを格納する
    ex) my_app/static/my_app/example.jpg
  • 2) Django template tag


    1. load

  • カスタムテンプレートタグセットのロード
  • パッケージに登録されているすべてのラベルとフィルタ
  • 2. static

  • STATIC ROOTに格納されている静的ファイルに接続

  • 3. STATIC_ROOT

  • collectstatic静的ファイルを配置するディレクトリ絶対パス
  • djangoプロジェクトで使用しているすべての静的ファイルを一箇所に集約するパス
  • 開発中に設定.pyのDEBUG値がTrueに設定されている場合は、この値は適用されません.
  • 直接記入しない場合はdjango項目に設定します.pyに作成されていません
  • 実サービス環境(導入環境)では、djangoのすべての静的ファイルが他のWebサーバから直接提供される
  • collectstatic

  • STATIC ROOTにて静的ファイル収集
  • # STATIC_ROOT 작성
    STATIC_ROOT = BASE_DIR / 'staticfiles'
    
    # collectstatic 명령어
    $ python manage.py collectstatic
    
    # 현재 장고가 사용하는 모든 static파일들을 한곳에 모아줌

    4. STATIC_URL

  • STATIC ROOT上の静的ファイルを参照する際に使用するURL
  • 開発段階で実際の静的ファイルが格納されているapp/static/path(デフォルトパス)とSTATICFILES DIRSで定義されている他のパスを探索
  • 実際のファイルやディレクトリではなくURLのみで存在する
  • 非Null値に設定し、必ず/で終わる
  • 5. STATICFILES_DIRS

  • app/static/ディレクトリパス以外の静的ファイルパスリストを定義する
  • プロジェクトフォルダと同じ経路で静/画像フォルダを作成する
  • 他のファイルディレクトリへのフルパスを含む文字列リストを記入する必要がある
  • # settings.py
    
    STATICFILES_DIRS = [
        BASE_DIR / 'static',
    ]
    
    # .html
    
    <img src="{% 'images/image.png' %}">