Django静的ファイルの読み込みメソッド

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

CSS、JavaScript、画像などの静的ファイルは、しばしばテンプレートに読み込まれます。 だから、どのようにこれらのファイルをdjangoで正しく読み込むことができますか?

まず、設定ファイルに設定する必要があります。静的ファイルの設定オプションは、主に次のとおりです。

1. STATIC_URL = '/static/'

静的ファイル検索のURLを指定します。 この設定の後、一般的には、スタティックファイルをAPPの静的ディレクトリに置くだけで済みますが、いくつかの共有静的ファイルがあることがあります。今回はSTATICFILES_DIRSを設定してフォルダを取得できます。

2. STATIC_ROOT =os.path.join(BASE_DIR, 'collected_static')

python manage.py collectstaticを実行するときは、STATIC_ROOTフォルダーを使用して、すべてのSTATICFILES_DIRSフォルダーからファイルをコピーし、各アプリケーションの静的ファイルをコピーします。 これらのファイルをまとめると、Apacheでデプロイするときに便利です。

3。


STATICFILES_DIRS = (
("images",os.path.join(STATIC_URL, 'images').replace('\\', '/')),
("css",  os.path.join(STATIC_URL, 'css').replace('\\', '/')),
("js",  os.path.join(STATIC_URL, 'js').replace('\\', '/')),
)

静的ファイルを格納するための他のフォルダは、プロジェクトで一般的な静的ファイルを格納するために使用できます.STATIC_ROOTは使用できません.STATICFILES_DIRSを使用しない場合は、アプリケーションで静的に使用できます。

4。


STATICFILES_FINDERS = (
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder"
)

デフォルト設定では、検索エンジンに相当し、DjangoはデフォルトでSTATICFILES_DIRSフォルダ内のファイルと各アプリケーションの下の静的フォルダを検索します。 あなたがそれを見つけるなら、あなたはそれを見つけることを続けることはありません、順序に注意を払う。

テンプレートでこれらの静的ファイルをどのように使用しますか? ステートメント{%load static from staticfiles%}は、このテンプレートファイルに1回だけ表示する必要がある次のコードを参照できます。


{% load static from staticfiles %}
<link href="{% static" rel="external nofollow" css/sample.css" %}" rel="stylesheet">

以下の方法を使用することもできます。


{% load static from staticfiles %}
{% static "css/sample.css" assample %}
<link href="{{ sample }}" rel="external nofollow" rel="stylesheet">

Djangoはこれらのファイルを実行時にSTATIC_URLで指定された値に自動的にマップします。 つまり、STATIC_URL = '/ static /'の場合、実行時に、上記のテンプレートのサンプル内のURLは/static/css/sample.cssに置き換えられます。

説明する2つのポイントは次のとおりです。

1。 STATIC_URLとSTATIC_DIRSが設定されていれば、href = "/ static / css / sample.css" rel = "external nofollow"など、テンプレート内の静的ファイルパスも正常に実行できます。 スタンドアロンサーバーやCDNを使用するなど、静的リソースの場所を後で移行する場合、多数のURLを変更する必要があるため、これはお勧めしません。 また、推奨される方法を使用すると、この巨大な作業負荷を回避できます。ほとんどの場合、STATIC_URLを変更する必要があります。

2。 cssファイルでもCSSの背景などの静的ファイルも使用されている場合は、相対パスを使用できます。これは、ブラウザがcssが自動的に相対パスに従って正しいURLを検索するためです。

開発段階では、Djangoは運用環境で使用できる組み込みの静的ファイルサーバーを使用していますが、安定しているわけではなく、安全でもないことを強調することも重要です。 より良い方法は、静的ファイルを提供するためにApacheなどのWebサービスを提供するサーバーを使用することです。 これを行うには、最初にコードをサーバーにアップロードしてから、collectstaticコマンド(python manage.py collectstatic)を実行し、Apache2などの静的ファイルを提供するようにWebサーバーを構成する必要があります。


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ