2017-12-10 14 views
0

私はdjangoプロジェクト内のすべてのブートストラップファイルを1つのフォルダに入れて参照しようとしています。私は他のhtmlファイルをCSSに、このbase.htmlを拡張する場合Djangoの静的ファイル404エラー

{% load static %} 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Muplay</title> 
    <link rel="stylesheet" type="text/css" href="{% static'css/bootstrap.css' %}"> 
    <script src="{% static 'js/bootstrap.js' %}"></script> 
</head> 
<body style="background-color: #F2F2F5"> 
    {% include 'snippets/nav.html' %} 
    <div class="container"> 
     {% block content %}{% endblock %} 
    </div> 
</body> 
</html> 

:私はsetting.pyするこれらの行を追加したことを行うためには:

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

私base.htmlは、このようになりますjsファイルがブラウザに正常に読み込まれます。しかし、問題は、次のように端末内に、Djangoは404エラーを返す、ということである:

[10/Dec/2017 14:03:27] "GET /static/js/bootstrap.js HTTP/1.1" 404 1759 
[10/Dec/2017 14:03:27] "GET /static/css/bootstrap.css HTTP/1.1" 404 1765 

これらの静的ファイルが正常にブラウザに読み込まれている間、Djangoは404コードを返すのはなぜ?

答えて

2

STATIC_ROOT設定ファイルにSTATICFILES_DIRSを追加(開発時に推奨)

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

STATICFILES_DIRS削除します。

この設定はstaticfilesアプリがFileSystemFinder場合横断する追加の場所を定義しますファインダーが有効になっている、例えばcollectstaticまたはfindstatic管理コマンドを使用するか、静的ファイル・サーブ・ビューを使用する場合

この

は、あなたの追加ファイルのディレクトリへの完全なパスを含む文字列のリストに設定する必要があります

STATIC_ROOT:

collectstaticを展開するために、静的なファイルを収集するディレクトリへの絶対パス。

STATIC_ROOTを使用する場合は、python manage.py collectstaticコマンドを実行して、すべての静的ファイルをSTATIC_ROOTに記載の静的ディレクトリに収集します。これは展開時に使用されます。

詳細な文書hereをご覧ください。

+0

ありがとうございます!出来た! –

関連する問題