私のブラウザー (firefox) コンソールは、ステータス 200 のファイルの受信を確認しますが、 firefox は次のように表示します。
The stylesheet http://localhost:8000/css/full-width-pics.css was not loaded because its MIME type, "text/html", is not "text/css". localhost:8000
The stylesheet http://localhost:8000/css/mainstyle.css was not loaded because its MIME type, "text/html", is not "text/css". localhost:8000
Djangoがファイルを提供しているが、mimetype が間違っているというさらなるふざけ: すべてのファイルがステータス コード 200 を返す:
[05/Jul/2015 08:52:33]"GET / HTTP/1.1" 200 6263
[05/Jul/2015 08:52:33]"GET /css/full-width-pics.css HTTP/1.1" 200 6263
[05/Jul/2015 08:52:33]"GET /js/bootstrap.min.js HTTP/1.1" 200 6263
[05/Jul/2015 08:52:33]"GET /css/mainstyle.css HTTP/1.1" 200 6263
[05/Jul/2015 08:52:33]"GET /js/jquery.js HTTP/1.1" 200 6263
これは私がこれまでに見つけたものです。
Django は Python を使用して MIME タイプを推測します。Python は、それが実行されているシステムを使用して MIME タイプを推測します。レジストリのどこかにあるウィンドウ。私は Ubuntu を使用しているので、/etc/mime.types にあります。
/etc/mime.types で次の行を見つけました。
text/css css
これは、問題が私のシステムにないことを意味します。問題はpythonですか?いいえ。次を実行します。
import mimetypes
mimetypes.guess_type("test.css")
私に次を与えます:
('test/css', none)
他のスタックオーバーフローの回答からいくつかの「ハック」を試しました。1 つのハックは、mimetypes.add_type("text/css", ".css", True)
settings.py に追加することでした。うまくいきませんでした。
もう1つは、url(r'.*\.css$', views.css),
urls.pyに追加し、これをviews.pyに追加することでした:
def css(request):
filename = request.path.strip("/")
data = open(filename, "rb").read()
return HttpResponse(data, mimetype="text/css")
また、機能しませんでした。両方とも外しました。なぜこれが起こっているのか、どうすれば適切に修正できるのかを知りたいだけです。問題は Django にあると確信していますが、どこにあるのかわかりません。
もう一つ重要な情報。これは、テンプレートの継承を使い始めた後にのみ発生し始めました。以前<link href="css/full-width-pics.css" rel="stylesheet" type="text/css" />
は index.html に直接あり、正常に機能しました。現在は base.html と index.html にあり、base.html を「拡張」しています。私はDjangoを学んでいるので、テンプレート継承を使い始めました。
これをすべて読んでくれてありがとう。