Найти - Пользователи
Полная версия: Django и CSS
Начало » Django » Django и CSS
1
alafin
Как заставить работать CSS в шаблоне?
Шаблон находится в /root/pythonua/templates
Сам css: /root/pythonua/templates/images/Refresh.css
В settings.py прописал:

TEMPLATE_DIRS = (
# Put strings here, like “/home/html/django_templates”.
# Always use forward slashes, even on Windows.
‘/root/pythonua/templates’,
)

Сам шаблон имеет примерно такой вид(начало):

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>

<html xmlns=”http://www.w3.org/1999/xhtml“ xml:lang=”en“ lang=”en“>
<head>

<meta name=”Description“ content=”Information architecture, Web Design, Web Standards.“ />
<meta name=”Keywords“ content=”your, keywords“ />
<link rel=”SHORTCUT ICON“ href=”favicon.ico“/>
<meta http-equiv=”Content-Type“ content=”text/html; charset=utf-8“ />
<meta name=”Distribution“ content=”Global“ />
<meta name=”Author“ content=”Alexey Afinogenov - alafin@ukr.net“ />
<meta name=”Robots“ content=”index,follow“ />

<link rel=”stylesheet“ href=”images/Refresh.css“ type=”text/css“ />

<title>Портал Python-программистов</title>


</head>

<body>
<!– wrap starts here –>
<div id=”wrap“>
<!–header –>
<div id=”header“>
<h1 id=”logo-text“> *Python<span class=”gray“>UA*</span></h1>
<h2 id=”slogan“>Я использую Питон когда могу, и Си – когда должен.
<br/>
<font color=”white“>Эрик Реймонд</font></h2>

<form class=”search“ method=”post“ action=”#“>
<p>
<input class=”textbox“ type=”text“ name=”search_query“ value=”“ />
<input class=”button“ type=”submit“ name=”Submit“ value=”Search" />
</p>
</form>
</div>
j2a
Я так понимаю, css не меняется (т.е. не является шаблоном в Django). Т.е. является статичным контентом (равно как и картинки). Django не работает со статикой, его должен отдавать отдельный сервер. Если в devel-режиме, то пропиши в urls:

from django.conf import settings
urlpatterns = patterns('',
# …
(r'^images/(?P<path>.*)$', ‘django.views.static.serve’, {'document_root': settings.MEDIA_ROOT}),
)


Картинки и CSS ложешь в папку, указанную в настройках в MEDIA_ROOT.

подробности см. в документации django
alafin
j2a
спасибо.
j2a
ну поставь ADMIN_MEDIA_PREFIX='/admin_media/', в чем проблема то? Только надо не забывать в production вместе со статикой для сайта отдавать и статику для админки, с указанными префиксом.

В итоге, твой совет трансформируется в “используйте разные префиксы для MEDIA_PREFIX и ADMIN_MEDIA_PREFIX”
alafin
Сталкнулся с еще одной проблемой: при использовании url-а виде http://localhost:8000/ вся статика видна нормально, но если использовать ту же самую страницу только вида http://localhost:8000/ru то статика не видна если не изменить, к примеру,
<link rel=“stylesheet” href=“images/Refresh.css” type=“text/css” />
на
<link rel=“stylesheet” href=“../images/Refresh.css” type=“text/css” />
Что в данном случае делать? Создавать два шаблона для типичных задач?
slivlen
Может просто прописывать абсолютные пути?
<link rel=“stylesheet” href=“/images/Refresh.css” type=“text/css” />
alafin
slivlen
работает! спасибо!
P.S. Вот так всегда, век живи - век учись
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