Django静的ファイルの詳細

1534 ワード

Djangoは、django.contrib.staticfilesによって静的ファイルを管理する.
静的ファイルの設定
  • は、まず、django.contrib.staticfilesINSTALLED_APPS
  • に追加することを保証する.
  • プロファイルにはSTATIC_URL、例えばSTATIC_URL = '/static/'
  • が設定.
  • は、テンプレート内で2つの方法で静的ファイルを参照することができ、1つは、/static/my_app/example.jpgのような直接ハードコーディングである.2つ目は、staticテンプレートラベル:
    {% load static %}
    ![]({% static )
    
  • を使用することです.
  • は、アプリケーションのstaticディレクトリの下に静的ファイルを保存する.

  • 開発環境
    開発環境では、runserverで起動し、debug=Trueで起動すると、サーバは静的ファイルを自動的に転送しますが、効率が高くなく、安全ではなく、生産環境に適していません.
    静的ファイルをアプリケーションのディレクトリの下に配置したくない場合は、STATICFILES_DIRSで構成できます.
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static"),
        '/var/www/static/',
    ]
    

    せいさんかんきょうdjango.contrib.staticfilesは、すべての静的ファイルを収集し、ディレクトリの下に統一的に配置するための良いコマンドを提供します.
  • は、最終的な静的ファイル、例えば、
    STATIC_ROOT = "/var/www/example.com/static/"
    
  • を保存するためにSTATIC_ROOTを設定する.
  • collectstaticコマンドを実行します.次のコマンドを実行すると、すべての静的ファイルがSTATIC_ROOTディレクトリにコピーされます.
    $ python manage.py collectstatic
    

  • 一般的に、本番環境ではdjangoで静的ファイルを転送するのではなく、nginx、apacheなどの他のサーバで転送します.
    STATIC_ROOTとSTATIC_URLの違いSTATIC_ROOTは収集された静的ファイルを保存するために使用され、サーバは最終的にこのパスからファイルを取得して転送する.STATIC_URLは、レンダリング後のHTMLの静的ファイルのプレフィックスである静的ファイルを参照するために使用されます.