この問題は広く知られているようですが、ほとんどは古いQ&Aであり、私の問題を解決することはできません。
Django 2.0.2を使用していますが、単純なWebページでbootstrap.cssファイルが見つからないためにレンダリングされていない場合。
私はこのチュートリアルに従っています: https://simpleisbetterthancomplex.com/series/2017/09/11/a-complete-beginners-guide-to-Django-part-2.html#static-files-setup
これは私のファイル構造です:
myproject/
|-- myproject/
| |-- boards/
| |-- myproject/
| |-- templates/
| |-- static/
| | +-- css/
| | +-- bootstrap.min.css <-- here
| +-- manage.py
これは、settings.py
ファイルで定義されている静的変数です。
STATIC_URL = '/static/'
STATICFILES_DIR = [
os.path.join(BASE_DIR, 'static'),
]
これは私のhome.html
ファイルですが、簡潔にするために下半分を切り取っています。
{% load static %}<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Boards</title>
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
</head>
<body>
<h1>Boards</h1>
デバッグをtrueに設定しました。サーバーを実行してロードすると、次のように表示されます。[08/Feb/2018 19:26:02] "GET /static/css/bootstrap.css HTTP/1.1" 404 1675
また、404エラーも記載されているため、このURLにアクセスできません:http://127.0.0.1:8000/static/css/bootstrap.min.css
。
上記のファイルに明確に記載されているのに、なぜDjango .cssファイルが見つからないのかわかりません。他のStackOverflowの質問/回答も役に立ちませんでした。
提案を受け入れます。どんな助けでも大歓迎です。
編集:OPがSTATICFILES_DIRS
設定のスペルを間違え、「S」が欠落しているようです。
Django appディレクトリ内にサブディレクトリstatic
を作成し、そのディレクトリ内に、Django次に、css
ディレクトリをその最新のディレクトリ内に移動します。
だから、このようなもの:
- your_Django_app
-- static
--- your_Django_app
---- css
----- bootstrap.min.css
次に、次のようにテンプレートで使用できるようになります。
<link rel="stylesheet" href="{% static 'your_Django_app/css/bootstrap.min.css' %}">
@bonidjkicのコメントによると:I believe that you misspelled the STATICFILES_DIRS setting (you're missing an 'S')
、これが問題でした。
どうもありがとうございました、私はこれまでそれを見逃したことがあるのでとても愚かです。
settings.pyファイルで、次の構文を使用してみてください。
STATICFILES_DIRS = [os.path.join(BASE_DIR、 "static")、 '/ Var/www/static /'、]
あなたの場合、「STATICFILES_DIR」変数が必要ですか?同じ場所を指しているので、nginxやApacheのようなもので実行して、静的ファイルをサーバーにするまでは冗長です。
設定ファイルの「INSTALLED_APPS」変数にあるDjango.contrib.staticfilesはありますか?