Проблемы с библиотеками Tornado и JavaScript - PullRequest
5 голосов
/ 02 марта 2011

Я пытаюсь написать простое веб-приложение на Python с использованием веб-сервера Tornado, и у меня возникают проблемы с использованием библиотек JavaScript, которые мне нужны. Я хотел использовать библиотеку графиков Protovis JavaScript, поэтому добавил в свой файл template.html следующий фрагмент кода «Hello World»:

<script type="text/javascript" src="/protovis-d3.2.js"></script>
<script type="text/javascript+protovis">
new pv.Panel()
    .width(150)
    .height(150)
    .anchor("center")
    .add(pv.Label)
        .text("Hello, world!")
        .root.render();
</script>

Однако, когда я запускаю веб-сервер и пытаюсь получить доступ к странице, я получаю следующую ошибку в консоли:

WARNING:root:404 GET /protovis-d3.2.js (127.0.0.1) 0.46ms

Файл protovis.js находится в том же каталоге, что и мой файл server.py, и все его разрешения установлены правильно. Я получаю ту же ошибку при попытке использовать файл src и JavaScript, поэтому я знаю, что проблема не в файле protovis.js, а в маршрутизации сервера Tornado.

Кто-нибудь знает, как я могу правильно использовать этот код JavaScript, спасибо.

1 Ответ

13 голосов
/ 02 марта 2011

Вам следует прочитать документацию о статических файлах .

В частности, стандартным способом является:

  • Создать «статический» каталог в корне вашего приложения

  • Добавьте следующее в настройки вашего приложения:

    "static_path": os.path.join (os.path.dirname ( file ), "static")

  • Поместите protovis-d3.2.js в вашу статическую директорию

  • Обратитесь к файлу / static / protovis-d2.2.js в вашем HTML
...