3

ここに私の設定があります:

STATIC_ROOT = "/home/tony/Documents/mysite/mysite/"

STATIC_URL = '/static/'

STATICFILES_DIRS = (
"/home/tony/Documents/mysite/mysite/static/",
)

そして、ここでスタイルシートを参照します(これによりエラーが発生します):

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/reset.css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/style.css" />

ログのエラー:

[06/Apr/2012 13:36:09] "GET /css/reset.css HTTP/1.1" 404 2193
[06/Apr/2012 13:36:09] "GET /css/style.css HTTP/1.1" 404 2193

私がそれを修正したと思った方法:

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}static/css/reset.css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}static/css/style.css" />    

そして、別のビューを作成するまで機能しました-:

from django.shortcuts import render_to_response
from django.template import RequestContext

def test(request):
    return render_to_response('test.html')

テンプレートに {% extends 'base/base.html' %} を追加しましたが、ログには何が記録されますか? これ:

[06/Apr/2012 13:46:55] "GET /test/ HTTP/1.1" 200 964
[06/Apr/2012 13:46:55] "GET /test/static/css/style.css HTTP/1.1" 404 2229
[06/Apr/2012 13:46:55] "GET /test/static/css/reset.css HTTP/1.1" 404 2229

/test/? に注意してください。css をロードしません。
理由はわかりますか?(django1.3でこの問題が発生したことはありません)

前もって感謝します :)

4

2 に答える 2

4

まず第一に、以下はあなたの問題を解決しませSTATIC_URL/static/

"{{ STATIC_URL }}static/css/reset.css"

{{ STATIC_URL }}テンプレートに があるのに がテンプレートに表示されない場合/static/は、 のテンプレート コンテキスト プロセッサが不足していると思いますSTATIC_URL

設定に追加'django.core.context_processors.static'しますTEMPLATE_CONTEXT_PROCESSORS。たとえば、次のようにします。

TEMPLATE_CONTEXT_PROCESSORS = (
   'django.core.context_processors.static',
)

設定ファイルに既にある場合TEMPLATE_CONTEXT_PROCESSORSは、既にあるものに追加する必要があります。

また、スラッシュで終わることに注意してください。したがって、ここSTATIC_URLの後の最初のスラッシュを削除する必要があります。{{ STATIC_URL }}

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/reset.css" />

最後に、あなたSTATIC_ROOTが意図したものではない可能性が最も高いです。そのはず:

"/home/tony/Documents/mysite/mysite/static/"

collectstaticこれは、コマンドを実行したときに静的ファイルが配置される場所です。Django ドキュメントの「静的ファイルの管理」を参照してください。

于 2012-04-06T11:14:57.577 に答える