この記事では、Django の STATIC_ROOT、STATIC_URL、STATICFILES_DIRS に関する関連情報をサンプル コードを通じて詳しく紹介します。学習や仕事に役立つ情報が含まれています。必要な方は参加してください。見てみましょう
前書き
この記事では主に Django の STATIC_ROOT、STATIC_URL、STATICFILES_DIRS に関連する内容を紹介し、参考と学習のために共有します。詳細な紹介バーをご覧ください。
詳細は次のとおりです:
まず、静的ファイルを構成し、次のコード行をsetting.pyに追加します:
settings.py
# the settings above # STATIC SETTINGS STATIC_URL = '/static/' # BASE_DIR 是项目的绝对地址 STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static') #以下不是必须的 STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'common_static'), )
1.STATIC_ROOT
STATIC_ROOT は、静的ファイル (pyhtonmanage.pycollectstatic) をデプロイするときにすべての静的ファイルが集約されるディレクトリです。ここでは、たとえば、私のプロジェクト mysite は /home/mysite/ です。 STATIC_ROOT は /home/mysite /collect_static/ です
プロジェクトをデプロイするときに、ターミナルに次のように入力します:
python manage.py collectstaticdjango はすべての静的ファイルを STATIC_ROOT フォルダーにコピーします
2。 STATIC_ROOT は実際の状況では、静的ファイルの一般的な配置場所は 2 つあります。1 つは、各アプリに新しい静的フォルダーを作成し、その中に静的ファイルを配置することです。静的ファイルの読み込み。たとえば、テンプレートで静的ファイルを使用したい場合、Django は各アプリの静的フォルダーを自動的に検索します (そのため、間違ったフォルダー名を書き込まないでください。そうしないと、Django はロードできなくなります)フォルダーを見つけるため)
2. 別のオプションは、すべてのアプリ ファイルの外にパブリック フォルダーを作成することです。一部の静的ファイルは特定のアプリに固有ではないため、管理を容易にするためにパブリック フォルダーに置くことができます。パブリック静的ファイル フォルダーは管理しやすい方法に過ぎませんが、必須ではありません。最終的にはすべての静的ファイルが STATIC_ROOT に存在するため、アプリは静的ファイルを複数のアプリに適用できます。 django は、アプリの外部のパブリック フォルダーにいくつかの静的ファイルを配置していることを知っているため、STATICFILES_DIRS を設定する必要があります
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'common_static'), )
STATICFILES_DIRS は、まず STATICFILES_DIRS で静的ファイルを探し、次にそれぞれの静的フォルダーに移動するように django に指示します。 (Django は遅延的な方法で静的ファイルを検索することに注意してください。最初のファイルが見つかると検索を停止します)
3.STATIC_URL
したがって、他の人がブラウザに直接入力することは不可能です:
http:/ /192.168.1.2:8000/home/mysite/common_static/myapp/photo.pngこのようにして、ブラウザはエラーを報告しますが、そのようなページは存在しません
それでは、Django はどのようにしてブラウザが静的ページにアクセスできるようにするのでしょうか前に述べたように、サーバーのローカル アドレスに直接アクセスすることはできないため、Django は STATIC_URL を使用してブラウザが次のような静的ファイルに直接アクセスできるようにする必要があります。STATIC_URL = '/static/'
そのため、サーバー上で閲覧中に、プレフィックス STATIC_URL の特定の内容を使用して STATIC_ROOT をマップします。
Django で Ajax を使用する方法
以上がDjango の STATIC_ROOT、STATIC_URL、STATICFILES_DIRS の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。