Найти - Пользователи
Полная версия: Не работает css на странице логина
Начало » Django » Не работает css на странице логина
1
Mutagena
Очень странно, что css не работает на странице логина. Не могу разобраться в чём причина.
В urls.py проекта:
from django.conf.urls.defaults import *
from django.conf import settings
from django.contrib.auth.views import login, logout

urlpatterns = patterns('',
(r'^accounts/login/$', login),
(r'^accounts/logout/$', logout),
url(r'', include('freeparse.web.urls')),
)

if settings.DEBUG:
urlpatterns += patterns('',
(r'^css/(?P<path>.*)$', 'django.views.static.serve', {'document_root': "%s/css/" % settings.MEDIA_ROOT}),
(r'^images/(?P<path>.*)$', 'django.views.static.serve', {'document_root': "%s/pics/" % settings.MEDIA_ROOT}),
(r'^js/(?P<path>.*)$', 'django.views.static.serve', {'document_root': "%s/js/" % settings.MEDIA_ROOT}),
)
Шаблоны находятся в папке templates. templates содержит 2 подпапки: registration (здесь шаблон для логина, наследуемый от base.html в templates) и web (здесь все шаблоны, относящиеся к приложению web).
Кусок кода из templates/base.html
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
{% block head %}{% endblock %}
</head>
Кусок из templates/web/home.html (главная страница):
{% extends "base.html" %}
{% block head %}
<title>Главная страница</title>
</script>
{% endblock %}
Кусок из templates/registration/login.html:
{% extends "base.html" %}

{% block head %}
<title>Вход в систему</title>

{% endblock %}
Помогите разобраться, в чём причина.
Ferroman
А настройки MEDIA_URL в settings.py какие?
Mutagena
Ferroman
MEDIA_ROOT = rel('sitemedia')
MEDIA_URL = 'freeparse.web/smedia/'
Создала другие страницы, наследуемые от base.html. css также не работает( Хотя на главной странице работает. Это страница home.html, наследуемая от base.html.
Ferroman
Тогда почему переменной {{media}} нет в путях шаблонов?
Mutagena
Ferroman, Она должна содержать путь к папке sitemedia? Наследуемые шаблоны абсолютно равноправны. Только на одном подключается css и картинки, а на другом нет. Почему тогда в одном всё работает, а в другом - нет?
Ferroman
Потому что вы задали относительно путь к статическим файлам. Для главной страницы (домен) он оказался верным, но для других страниц, с большей “вложенностью” - нет, поскольку браузер тянет статические файлы ориентируясь на неверные относительные пути. От этого спасает тег медиа, который подставляет первую часть пути, сохраняя правильный путь к файлам с любой страницы.
Mutagena
Ferroman, заметила одну закономерность. css подключается только в шаблоне, обрабатываемым представлением, которое вызывается в контроллере url(r'^$', ‘home’, name='index')
Ferroman
И что? Я только что рассказал почему так происходит.
Mutagena
Ferroman, помогло, спасибо :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB