開発

DjangoでStaticにアップロードしたファイルが見えない問題


Django 1.8以降の問題かも。

とりあえず、Djangoアプリを作っていて、

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

 


を設定したのに、static以下が見えないよ!って時の設定の話。

settings.pyの’DIRS’の部分を以下のように変更。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')], # 変更したところ。
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

そしたら見えるようになりました。

上記設定をしていなかった場合には、Djangoアプリ以下のstaticファイルを読みに行っている可能性があります。

私の場合は実際に、staticファイル以下を作っているDjangoアプリ配下に移動してみたら、表示されました。

そもそも、staticディレクトリは、通常Djangoアプリのstaticを探しにいくそうです。その辺りが関係しているかも。