Настройка статических файлов пижамы и Django

#django #templates #django-context #pyjamas

#django #шаблоны #django-контекст #пижама

Вопрос:

Я несколько новичок как в веб-разработке, так и в фреймворках Django и Pyjamas. Поэтому я ценю любое проявленное ко мне терпение в процессе обучения.

Я настраиваю Django и Pyjamas для совместной работы, клиент / сервер JSONRPC шаблоны Django.

У меня есть скомпилированная пижама my_project.html подаются как шаблоны Django. У меня есть папка шаблонов Django, установленная в выходной папке моего проекта Pyjamas.

Pyjamas компилирует bootstrap.js в ту же выходную папку, и мне нужны правильные ссылки в шаблонах Django на эти файлы в качестве текущей ссылки на:

 <script language="javascript" src="bootstrap.js"></script>
  

Не функционирует.

Способ управления статическими файлами Django для меня не очень очевиден даже после прочтения документации. Каков наилучший способ настроить это с точки зрения иерархии папок и настроек Django?

Каков наилучший способ ссылаться на мои статические файлы из моих шаблонов Django?

Я знаю, что, вероятно, задаю очевидные вопросы, но после прочтения доступной документации я просто не могу собрать это воедино. Это последняя часть головоломки, прежде чем я действительно начну работать, поэтому любая помощь будет высоко оценена!

Комментарии:

1. Почему вы хотите, чтобы пижама использовалась в качестве шаблона django? Обычно они отделены друг от друга, и обслуживание правильных файлов осуществляется http-сервером (nginx, lighttpd, apache и т.д.).

Ответ №1:

Это не позволяет мне комментировать, но я сталкиваюсь с той же проблемой. Чтобы ответить Даниэлю Клюеву, наша причина обслуживания страницы pyjamas через django заключается в том, что запросы JSONRPC из pyjamas -> django сталкиваются с защитой CSRF в django, что приводит к ошибке 403. Лучшее решение (а может быть, и единственное?) мы видели, что токен передается pyjamas в виде файла cookie (или элемента формы), который затем может быть отправлен обратно в django во время RPC. Мы не смогли реализовать это из-за проблем, упомянутых Shattered1113 в его вопросе.

Единственный другой вариант, который я видел, это отключить промежуточное программное обеспечение CSRF или исключить из него определенные представления с помощью декоратора. Похоже, это решение используют все, однако мы требуем, чтобы была включена защита csrf, поэтому у нас это не сработает.