2013-09-23 2 views
0

Изображение в родительском шаблоне не загружается в дочернем, а вместо него отображается символ «alt». Вот как идет структура.изображение не загружается при использовании наследования шаблонов

"base.html"

<DOCTYPE! html> 
<html> 
    <head> 
    </head> 
    <body> 
     <div class = "x"> 
      <image src="x.jpg" alt="x"> 
     </div> 
     <div class = "y"> 
      <a src="...">y</a> 
     </div> 
     <div id = "content"> 
      {% block content %} 
      {% endblock %} 
     </div> 
    </body> 
</html> 

"child.html"

{% extends "base.html" %} 
    {% block content %} 
     ---replaced content 
    {% endblock %} 

содержание, у ребенка показать в обычном режиме, но х (изображение) показывает альтернативный текст и не может загрузите изображение. Это происходит только тогда, когда src изображения не является URL-адресом, если это хорошо.

Я использую двигатель шаблона jinja2.

ответ

0

Проблема была решена, когда я добавил изображение в каталог, содержащий все статические файлы, отличные от любого каталога, и добавив путь к каталогу в src. Это произошло потому, что я настроил app.yaml обработчик как этот

handlers: 
- url: /static 
    static_dir: static 

так всякий раз, когда URL начинается с «/ статический» он получает его из этого каталога и рассматривает его как статический файл не иначе.

Это очень похоже на этот вопрос Jinja not rendering css/images in sub-directories и не имеет ничего общего с jinja2 или его наследством.

+0

В нижней строке используйте абсолютные URL-адреса при обращении к изображениям (и другим ресурсам). –

+0

Вы имеете в виду в конфигурационном файле? если да, то что абсолютное против относительного URL-адреса в нем (не в общем)? – Shimaa

+0

Я имел в виду в HTML. 'src =" x.jpg "' и 'src ="/x.jpg "означают разные вещи в зависимости от запроса. В большинстве случаев вы хотите использовать последнее. –

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