Форум сайта python.su
Очень странно, что 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}),
)
<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>
{% extends "base.html" %}
{% block head %}
<title>Главная страница</title>
</script>
{% endblock %}
{% extends "base.html" %}
{% block head %}
<title>Вход в систему</title>
{% endblock %}
Офлайн
А настройки MEDIA_URL в settings.py какие?
Офлайн
Ferroman
MEDIA_ROOT = rel('sitemedia')
MEDIA_URL = 'freeparse.web/smedia/'
Отредактировано (Янв. 15, 2010 21:47:10)
Офлайн
Тогда почему переменной {{media}} нет в путях шаблонов?
Офлайн
Ferroman, Она должна содержать путь к папке sitemedia? Наследуемые шаблоны абсолютно равноправны. Только на одном подключается css и картинки, а на другом нет. Почему тогда в одном всё работает, а в другом - нет?
Офлайн
Потому что вы задали относительно путь к статическим файлам. Для главной страницы (домен) он оказался верным, но для других страниц, с большей “вложенностью” - нет, поскольку браузер тянет статические файлы ориентируясь на неверные относительные пути. От этого спасает тег медиа, который подставляет первую часть пути, сохраняя правильный путь к файлам с любой страницы.
Отредактировано (Янв. 16, 2010 21:18:05)
Офлайн
Ferroman, заметила одну закономерность. css подключается только в шаблоне, обрабатываемым представлением, которое вызывается в контроллере url(r'^$', ‘home’, name='index')
Офлайн
И что? Я только что рассказал почему так происходит.
Отредактировано (Янв. 16, 2010 21:22:02)
Офлайн
Ferroman, помогло, спасибо :)
Офлайн