#django #django-templates #polymer
#django #django-шаблоны #полимер
Вопрос:
Последние несколько часов я застрял, пытаясь выяснить, почему основные элементы Polymer не отображаются должным образом в приложении Django, которое я создаю в качестве личной веб-страницы. Приложение на данный момент просто указывает на index.html страница, которая, если вы будете следовать руководству по полимеру, находится на первом шаге.
Однако компоненты не загружаются на моей странице. Все статические файлы настроены правильно, и есть тонкая анимация из файлов css, которые загружаются правильно, но шрифт Roboto и основные элементы не отображаются. Запуск сайта как обычного HTML-файла делает все правильно.
Существует ли конкретный способ использования Polymer в шаблоне Django?
Спасибо.
Ответ №1:
Смотрите ответ Эрика на это в списке рассылки polymer-dev: https://groups.google.com/forum/?fromgroups=#!searchin/polymer-dev/django/polymer-dev/N2R8qknalOI/58ZhC1gWFh4J
Соответствующий отрывок:
Django 1.5 поддерживает тег verbatim. Вы можете обернуть свои встроенные определения элементов следующим образом: https://docs.djangoproject.com/en/1.5/ref/templates/builtins/#verbatim
Пример фрагмента кода:
{% verbatim %}
<template repeat="{{item as items}}">
<my-element name="{{item.name}}"></my-element>
</template>
{% endverbatim %}
<script>
document.querySelector("template').model = {{items}}; // items here is filled by the server's template.
</script>
Комментарии:
1. Это работает. Что также помогает, так это правильная настройка CSS для страницы. С моей стороны полная ошибка, но требуется подтверждение дословно.
Ответ №2:
Я почти уверен, что это связано с тем фактом, что Django использует то же {{}}
самое в своих шаблонах, что и Polymer.
Комментарии:
1. Вероятно, вам придется обслуживать свои компоненты отдельно, чтобы Django не заменял все полимерные элементы »
{{}}
. Это то, что это , кажется, рекомендует.2. Я не знаю Django, но также может быть способ сказать Django не анализировать какие-либо
.html
файлы в вашемcomponents
каталоге.3. В прошлом я обходил это с помощью
include_raw
тега. Это говорит Django не интерпретировать этот раздел кода github.com/GoogleChrome/chromium-dashboard/blob/master /…4. Похоже, что загрузчик шаблонов отображает ‘{{ }}’, что приводит к сбою элементов. Однако попытка вручную обернуть теги ‘{% verbatim %}’ вокруг экземпляров ‘{{ }}’ в файлах, которые вызывает polymer, не отображает содержимое правильно. Также не удобно, что элементы вызывают другие html-файлы, в которых больше ‘{{ }}’. @ebidel — Как вы реализуете этот тег шаблона при вызове файлов из статического содержимого? Похоже, это правильный путь, но не уверен, как использовать этот тег.
5. Если файлы действительно статичны, они не обрабатываются шаблоном djnago. Не должно быть проблемой. Возможно, я неправильно понимаю вашу настройку.
Ответ №3:
Я добавляю этот ответ в качестве дополнения к уже принятому ответу.
Вы можете заставить django требовать пробел для своих тегов шаблонов. Итак, для любых тегов шаблонов django, которые вы должны использовать {{ variable }}
, и для polymer, которые вы будете использовать {{variable}}
.
Вот очень простой модуль / приложение, которое я создал, чтобы «подготовить» django к использованию вместе с polymer.
Заслуга принадлежит https://github.com/nebrybledu за это предложение.