2012-02-10 1 views
3

Работаю с django 1.3 и выполняет наследование шаблона. Мой путь /static/, кажется, имеет проблемы, когда я покидаю домашнюю страницу. Проблема заключается в том, что когда я загружаю home.html, который наследует base.html, ссылки CSS и изображения работают нормально. Но когда я иду к дополнительному URL (в данном случае vehicle.html), то CSS и изображение затеряться с ниже ошибки:Как избавиться от кода «% 20» в URL-адресах (django)

ошибка консоли

"GET /static/%20/static/images/logo_2.jpg HTTP/1.1" 404 1771 
"GET /static/%20/static/css/default.css HTTP/1.1" 404 1765 

просмотра страницы источника

<link rel="stylesheet" type="text/css" href="/static/ /static/css/default.css"> 
<link rel="stylesheet" type="text/css" href="/static/ /static/css/default.css"> 

Похоже, откуда-то появляется какое-то пространство. Кроме того, из файла vehilce.html источник страницы показывает, что добавление дополнительного /static/ к URL-адресу plust занимает пространство. Где я могу ошибиться? Смотрите ниже для моих документов:

settings.py

STATIC_ROOT = 'D:/dev/workspace/vehicle_request/vehicle_request/mvmanager/static/' 
STATIC_URL = '/static/' 

urls.py

urlpatterns = patterns('', 
        url(r'^$', home_page), 
        (r'^admin/', include(admin.site.urls)), 
        (r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}), #Not in use in my code yet 
        (r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT}), 
        (r'^vehicle/', vehicle), 
        (r'^driver/', driver), 

base.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html lang="en"> 
<head> 
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/static/css/default.css"> 
<title>{% block title %}{% endblock %}</title> 
</head> 
<body> 
<header> 
<a href="http://localhost:8000" title="Home Page"> 
<img alt="logo2:" src="{{ STATIC_URL }}/static/images/logo_2.jpg" 
style="float:left; margin:5px" height="100"; border=none"></a><br><br> 
<h1>Vehicle Request System <span class="version">(Version 0.1 beta)</span></h1> 
</header> 
<hr style="clear: left"> 
<hr> 
</body> 
</html> 

vehicle.html

{% extends "base.html" %} 
{% block title %}Vehicle Registration{% endblock %} 
{% block content %} 
<html> 
<head></head> 
<body></body> 
</html> 
{% endblock %} 

Спасибо.

редактирует

1. Я изменил stati в href="{{STATIC_URL}} /static/css/default.css"> читать static как то, как это в моем коде. Должно быть, я ошибся во время публикации. Однако на данный момент,

2. При изменении {{STATIC_url}} /Static на {{STATIC_URL}}/Static ie. Я удалить пространство между этими двумя словами -по предложил @sarnold ценам ниже, home.html работает как обычно, но vehicle.html еще не загружает CSS и изображение, и извергает ошибку ниже в консоли:

File "c:\Python27\lib\site-packages\django\core\files\storage.py", line 234, in path 
raise SuspiciousOperation("Attempted access to '%s' denied." % name) 
SuspiciousOperation: Attempted access to '\static\images\logo_2.jpg' denied. 
[10/Feb/2012 06:11:55] "GET /static//static/images/logo_2.jpg HTTP/1.1" 500 1731 

File "c:\Python27\lib\site-packages\django\core\files\storage.py", line 234, in path 
raise SuspiciousOperation("Attempted access to '%s' denied." % name) 
SuspiciousOperation: Attempted access to '\static\css\default.css' denied. 
[10/Feb/2012 06:23:29] "GET /static//static/images/logo_2.jpg HTTP/1.1" 500 1731 

3. Когда я совмещаю предложения @sarnold и @cptphil, vehicle.html отлично загружает css и изображение. home.html однако терпит неудачу. Смотрите изменения в base.html ниже:

base.html (отредактирован выглядеть)

<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/default.css"> 
<img alt="logo2:" src="{{STATIC_URL}}images/logo_2.jpg" 

home.html Теперь оленья кожа»работа!(Просмотр кода страницы)

<link rel="stylesheet" type="text/css" href="css/default.css"> 
<img alt="logo2:" src="images/logo_2.jpg" 

vehicle.html теперь работает (просмотр кода страницы)

<link rel="stylesheet" type="text/css" href="/static/css/default.css"> 
<img alt="logo2:" src="/static/images/logo_2.jpg" 

И это, как home.html выглядит в сыром виде

{% extends "base.html" %} 
{% block title %}GEL: Vehicle Request System{% endblock %} 
{% block content %} 
{% endblock %} 

ответ

5

Я считаю, что механизм шаблонов делает то, что вы просите его делать.

href="{{STATIC_URL}} /stati/css/default.css" 

правильно переводится

/static/ /stati/css/default.css 

Попробуйте

href="{{STATIC_URL}}css/default.css" 

в base.html если то, что вы после

/static/css/default.css 

Не могу объяснить, почему дома. Однако html будет работать правильно.

+0

Эй, смешная штука: если я сделаю то, что вы предложили, 'vehicle.html' загрузит css и изображение. НО, 'home.html' не загружает их! Интересно. Как вы думаете, в чем проблема? FYI, все документы 'html' находятся в одной папке, а' image' и 'css' находятся в соответствующих папках в папке' static'. – lukik

+0

Это интересно. Можете ли вы опубликовать свой код home.html? Трудно понять, что может быть проблемой, но это может помочь. – philofinfinitejest

+0

См. 'Edit # 3.' в исходном сообщении. Спасибо – lukik

2

Похоже, вы добавили пробелы вручную до base.html:

<link rel="stylesheet" type="text/css" href="{{STATIC_URL}} /stati/css/defau... 
<img alt="logo2:" src="{{ STATIC_URL }} /static/imag.... 

Выньте пробел перед /stati/css и /static/imag и посмотреть, если проблема исчезнет.

+0

Когда я сделаю ваше предложение, я получаю другую ошибку, как показано в «edit # 2» в исходном сообщении выше. Так что все еще не работает. Благодарю. – lukik

Смежные вопросы