Я пытаюсь настроить веб-сайт управления проектами Trac и столкнулся с интересной проблемой. В проекте есть набор изображений в форматах SVG и PNG. Изображения SVG имеют множество преимуществ, включая несколько гиперссылок и меньший передаваемый размер по сравнению с PNG, который больше и может ссылаться только на один документ.
Я понимаю, что можно использовать jQuery для обнаружения пользовательского агента после загрузки страницы и замены PNG версией изображения SVG, но это приводит к тому, что PNG отправляется всем клиентам. Я также могу попросить Genshi заменить PNG на SVG для всех клиентов, а затем использовать jQuery, чтобы вернуть PNG, но возникает та же проблема. Я мог бы использовать jQuery для вставки соответствующих изображений для всех клиентов, но это кажется глупым требовать, чтобы клиент делал то, что должен делать сервер.
Есть ли способ получить информацию о браузере внутри шаблона Genshi? Это немного сложнее, чем просто вызывать переменные среды, потому что я запускаю Trac с использованием WSGI. Я просмотрел вывод repr(locals())
и не увидел ничего похожего на решение моей проблемы. Я также хотел бы избежать изменения исходного кода Trac.