Djangoで静的CSSがスタイルを読み込まない問題の解決方法


  1. 静的ファイルの設定を確認する: Djangoでは、STATIC_URLSTATIC_ROOTといった設定項目を使用して静的ファイルのディレクトリやURLを指定します。まずは、settings.pyファイルでこれらの設定が正しく行われているか確認しましょう。

    # settings.py
    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')

    上記の例では、STATIC_URL/static/となっており、STATIC_ROOTがプロジェクトのルートディレクトリにある"static"ディレクトリを指しています。適切な設定が行われていることを確認しましょう。

  2. 静的ファイルの配置を確認する: Djangoでは、静的ファイルをSTATIC_ROOTで指定したディレクトリに配置する必要があります。例えば、CSSファイルをstatic/css/style.cssというパスに配置した場合、次のようになります:

    project
    ├── static
    │   └── css
    │       └── style.css
    └── ...

    静的ファイルが正しいディレクトリ構造に配置されているか確認しましょう。

  3. <!-- template.html -->
    {% load static %}
    <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">

    適切なテンプレートタグが使用されていることを確認しましょう。

  4. 静的ファイルのURLを確認する: 開発環境では、Djangoが静的ファイルを提供するためのURLが自動的に生成されます。例えば、STATIC_URL/static/であれば、CSSファイルのURLは/static/css/style.cssとなります。ウェブページのソースコードを確認し、CSSファイルのURLが正しいことを確認しましょう。