Найти - Пользователи
Полная версия: CSS и шаблоны
Начало » Django » CSS и шаблоны
1 2
mks
Добрый день.
Я только начал изучать django, и столкнулся с проблемой подключения css файлов к шаблону. Делал по документации https://docs.djangoproject.com/en/dev/howto/static-files/#howto-static-files но почему то не работает. Проект запускаю из под сревера разработки django. В проекте есть единственное приложение guest_book с каталогами static и template с единственным шаблоном и css файлом. Если кому не трудно посмотрите что не так http://dl.dropbox.com/u/9133112/GuestBook.zip
Заранее спасибо.
maksaimer
у тебя в settings.py не определены переменные MEDIA_ROOT и MEDIA_URL.
Из вашего файла настроек видно, что путь к файлу sqlite лежит вот тут
'NAME': ‘D:\\PROJECTS\\PYTHON\\my_guest_book\\GuestBook\\sqlite.db’
проект соответственно лежит тут ‘D:\\PROJECTS\\PYTHON\\my_guest_book\\GuestBook\\’

еще положите папки static и template выше уровнем. они обычно лежать в проекте, а не в приложении.

поставь:
MEDIA_ROOT = ‘\\PROJECTS\\PYTHON\\my_guest_book\\GuestBook\\static\\’
обычно:
MEDIA_URL = 'http://127.0.0.1/static/'

у вас странное имя файла шаблона “base.djhtml”

В шаблоне поменяй строчку

<link rel=“stylesheet” type=“text/css” href=“{{ STATIC_URL }}base.css”>

на

<link rel=“stylesheet” type=“text/css” href=“{{ MEDIA_URL }}base.css”>
mks
maksaimer
еще положите папки static и template выше уровнем. они обычно лежать в проекте, а не в приложении.
Я ориентировался на следующую фразу из документации (по ссылке из первого сообщения):
Basic usage

1. Put your static files somewhere that staticfiles will find them.

By default, this means within static/ subdirectories of apps in your INSTALLED_APPS.
maksaimer
у вас странное имя файла шаблона “base.djhtml”
Использую для работы Aptana studio, её встроенный редактор django шаблонов понимает их только с таким расширением. Насколько понял из документации самому django всё равно как называется файл, или я не прав ?
maksaimer
поставь:
MEDIA_ROOT = ‘\\PROJECTS\\PYTHON\\my_guest_book\\GuestBook\\static\\’
обычно:
MEDIA_URL = 'http://127.0.0.1/static/'
Вобщем заработало и без этого. Я не сразу заметил следующую фразу в документации:
If {{ STATIC_URL }} isn't working in your template, you're probably not using RequestContext when rendering the template.
Я использовал функцию render_to_response для генерации страницы, а она как я понял не подставляет значения переменной STATIC_URL. Если использовать RequestContext то всё сразу работает.
Также заработал способ под названием template tag. Что то типа такого:
    {% load static %}
<link rel="stylesheet" type="text/css" href="{% get_static_prefix %}css/guest_book.css">
Мне второй способ понравился больше. Было бы здорово услышать в 2-х словах о преимуществах и недостатках обоих.
И ещё при подобном включении css таблицы каким образом django распознаёт пути типа таких:
http://127.0.0.1/guest_book/static/css/guest_book.css
Ведь в файле urls никаких записей на этот счёт нет?
P.S.
http://dl.dropbox.com/u/9133112/guest_book.zip это новый проект, в старом я что то такое нахимичил что он не запускается :)
Всем спасибо за помощь и сочувствие.
maksaimer
По поводу static в шаблонах, я делаю вот так
return render_to_response(
'catalog/catalog-index.html',
context,
context_instance=RequestContext(request)
)
и тогда шаблон видит переменную STATIC_URL
apologize828
правильнее делать так
будут вопросы, спрашивай.
mks
apologize828 спасибо, буду разбираться.
mks
apologize828 скажите а зачем класс администрирования модели выносить в отдельный файл admin.py? Так же не могу найти откуда он вызывается в вашем проекте или он использует системой django неявно ? Если так то где об этом можно почитать ?
apologize828
скажите а зачем класс администрирования модели выносить в отдельный файл admin.py?
так принято в django.
Так же не могу найти откуда он вызывается в вашем проекте или он использует системой django неявно? Если так то где об этом можно почитать ?
urls.py ->admin.autodiscover().
Чтобы понять что происходит, открой и посмотри как реализован этот метод и думаю разберешься.
Сначала попробуй сам понять что происходит, затем уже прочитай правильно ли ты все понял: http://djbook.ru/ch06s05.html
mks
Спасибо, вроде разобрался.
Есть ещё вопрос:
после очередных экспериментов с проектом что то произошло (непонятно где) и во всех проектах в том числе и в вашем отвалился интерфейс администратора (выводится голый html без оформления) при этом в консоль идёт такой вывод:

Даже если создать новый пустой проект и там включить админку то всё тоже самое, хотя раньше рботало. Пробовал переустанавливать django, не помогает. :( С этим можно что то сделать ?
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