Inline SVG, обслуживаемый скриптом Python в Google App Engine, не отображается

Я пишу приложение, которое собирает куски svg вместе и служит им как часть страницы, смешанной с css и javascript. Я использую Python и Google App Engine. То, что я делаю, отлично работает на моем локальном сервере разработки, но не удается выполнить его разворачивание.

Итак, вот какой тестовый питон для создания ответа:

self.response.headers.add_header('Content-Type','application/xhtml+xml') self.response.out.write("<html xmlns='http://www.w3.org/1999/xhtml'>") self.response.out.write("<body>") self.response.out.write("<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>") self.response.out.write("<rect x='10' y='10' height='100' width='100' />") self.response.out.write("</svg>") self.response.out.write("</body></html>") 

Теперь, если я попрошу об этом на локальном сервере разработки (я использую Safari, но Firefox работает тоже), он работает, и я вижу черный квадрат. Если я создам документ xhtml с этой разметкой, и я загружу эту страницу на сервер, я увижу квадрат, но когда я разворачиваю это приложение на сервере и запускаю его, я не вижу квадрат. Вся разметка есть, когда я смотрю на View Source, но это не будет отображаться.

Я пробовал использовать разные типы mime. Я попытался добавить: <!DOCTYPE html> или добавить < ?xml version=1.0"?> И ничто из этого не имеет значения.

Есть идеи?

One Solution collect form web for “Inline SVG, обслуживаемый скриптом Python в Google App Engine, не отображается”

Я решил проблему. Эта строка:

 self.response.headers.add_header('Content-Type','application/xhtml+xml') 

не работает. Я решил, что, используя http://web-sniffer.net, чтобы увидеть, какой тип содержимого сопровождал страницу, и он всегда возвращал текст по умолчанию / html.

Правильный синтаксис:

 self.response.headers["Content-Type"] = "application/xhtml+xml" 

Теперь все работает просто peachy.

Не много вопросов о svg + google-app-engine на SO, но это может быть полезно для кого-то еще в будущем.

  • Инструменты для написания XML для Python
  • Рекомендуемый способ генерации документов XHTML с помощью lxml
  • Python - лучший язык программирования в мире.