0

ここ数日、css ファイルを Django テンプレートに含める方法を考え出しました。私はまだ成功していないので、誰かが私を助けてくれることを願っています. 次の設定があります。

--settings.py--

MEDIA_ROOT = '' 
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'

STATICFILES_DIRS() にも何も設定していません。

--urls.py--

urlpatterns = patterns('', (r'^$', 'reviewsite.views.my_homepage_view'),)
urlpatterns += staticfiles_urlpatterns()

--views.py--

def my_homepage_view(request):
return render_to_response('test.html', context_instance=RequestContext(request))

--test.html テンプレート--

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

-- ソースコード localhost --

<link rel="stylesheet" type="text/css" href="/static/css/style.css"/>

Django のドキュメントによると、すべてを正しく設定したようですが、CSS スタイルはまだ適用されていません。静的フォルダーは、残りのアプリも存在する正しい場所 (C:reviews/reviewsite/static) にあります。test.html テンプレートで style.css の場所 (C:reviews/reviewsite/static/css/style.css) をハードコードしても、css スタイルは適用されません。style.css を確認しましたが、Django がなくても動作します。私が間違っていることについて何か考えはありますか?

4

2 に答える 2

0

これは、静的でファイルを呼び出す方法です

{% static %}

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

設定.py

import os
import sys

PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')
SITE_ROOT = PROJECT_ROOT

MEDIA_ROOT = os.path.join(SITE_ROOT, 'media') 
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    //create staticfiles folder
    os.path.join(SITE_ROOT, 'staticfiles'),
)
于 2013-03-11T09:26:19.293 に答える
0

皆様、ご協力ありがとうございます。返信が遅くなり申し訳ありません。あなたの提案を試しましたが、残念ながらうまくいきませんでした。しかし、もう少し試してみたところ、今では機能するようになりました。これは私のために働いたものです:

--settings.py--

MEDIA_ROOT = ''
MEDIA_ROOT = ''
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = 'http://localhost:8000/static/'

--urls.py--

urlpatterns = patterns('', (r'^$', 'reviewsite.views.my_homepage_view'),)
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT }), )

css ファイルを apps ディレクトリの static フォルダーに配置しました。テンプレートでは、{{ STATIC_URL }}/style.css を使用しています。

于 2013-03-17T16:28:20.153 に答える