我正在尝试对 Trac 项目管理网站进行一些定制,但遇到了一个有趣的问题。该项目有一组 SVG 和 PNG 的图像。SVG 图像具有许多优点,包括多个超链接和较小的传输大小,而 PNG 较大且只能链接到单个文档。
我意识到可以在页面加载后使用 jQuery 嗅探用户代理并将 PNG 替换为 SVG 版本的图像,但这会导致 PNG 被发送到所有客户端。我也可以让 Genshi 将所有客户端的 PNG 替换为 SVG,然后使用 jQuery 将 PNG 放回原处,但结果相同。我可以使用 jQuery 为所有客户端插入适当的图像,但是要求客户端执行服务器应该执行的操作似乎很愚蠢。
有没有办法可以在 Genshi 模板中获取浏览器信息?由于我正在使用 WSGI 运行 Trac,因此这比仅调用环境变量要困难一些。我查看了的输出repr(locals())
并没有看到任何看起来解决了我的问题的东西。我还想避免修改 Trac 源代码。