2014-09-18 2 views
1

У меня проблема, что я сделал все, как описано в учебнике https://docs.djangoproject.com/en/1.5/intro/tutorial06/, и все, что работает нормально, но css, изображения не показывают их эффектов. Будучи новым на django, необходимы предложения. спасибо за любую помощь.django static file not loading

Мой файл CSS: -

li a { 
    color: red; 
} 
body { 
    background: white url("images/background.gif") no-repeat right bottom; 
} 

url.py файл: -

from django.conf import settings 
from django.conf.urls.static import static 
from django.conf.urls import patterns,url 
from polls import views 
urlpatterns = patterns('', 
    url(r'^$', views.IndexView.as_view(), name='index'), 
    url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'), 
    url(r'^(?P<pk>\d+)/results/$', views.ResultsView.as_view(), name='results'), 
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'), 
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

Index.html файл -

{% load staticfiles %} 
<link rel="stylesheet" type="text/css" href="{% static '/polls/style.css' %}"/> 
{% if latest_poll_list %} 
<ul> 
{% for poll in latest_poll_list %} 
    <li><a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li> 
{% endfor %} 
</ul> 
{% else %} 
<p>No polls are available.</p> 
{% endif %} 

Settings.py файл: -

MEDIA_ROOT = '' 
MEDIA_URL = '' 
STATIC_ROOT = '' 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    '/polls/static/' 
    ) 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
) 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
) 

ROOT_URLCONF = 'mysite.urls' 

WSGI_APPLICATION = 'mysite.wsgi.application' 

TEMPLATE_DIRS = (
    'C:/django poll project/mysite/templates', 
    ) 

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'polls', 
) 

На runserver, getting-

[18/Сен/2014 17:40:51] "GET/опросы/HTTP/1.1" 200 311 [18/Сен/2014 18:25:39] «GET/опросы/HTTP/1.1" 200 311

+0

Где вы положили файл CSS? – uranusjr

+0

\ django poll project \ polls \ static \ polls \ style.css –

ответ

2

URL, к статическому-Files является „ваш_домен/статический /“

Если вы хотите получить доступ к вашему „style.css“ следует использовать «/ статический/стиль .css»вместо "/polls/style.css"

EDIT:

Изменить эту часть вашего settings.py

STATICFILES_DIRS = (
    '/polls/static/' 
    ) 

в

STATICFILES_DIRS = (
    'C:/django poll project/mysite/static' 
    ) 

лучше было бы:

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

Тогда папка называется "статический" и находится на том же уровне где находится «manage.py». Когда вы кладете style.css в этом «статические» -folder вы можете назвать его «/static/style.css»

+0

Не отражает никаких изменений –

+0

Хорошо, я отредактировал мое сообщение. (Посмотрите на это) – Lee

+0

спасибо .it работает –

0

Он работал для меня:

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__)) 
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, '..', 'static'), 
)