Trac プロジェクト管理 Web サイトをカスタマイズしようとしていますが、興味深い問題に遭遇しました。プロジェクトには、SVG と PNG の両方の画像のセットがあります。SVG 画像には、複数のハイパーリンクや、より大きく単一のドキュメントにしかリンクできない PNG に対して送信サイズが小さいなど、多くの利点があります。
ページがロードされた後に jQuery を使用してユーザー エージェントを盗聴し、PNG をイメージの SVG バージョンに置き換えることができることを認識していますが、これにより PNG がすべてのクライアントに送信されます。Genshi にすべてのクライアントの PNG を SVG に置き換えてもらい、jQuery を使用して PNG を元に戻すこともできますが、同じ問題が発生します。jQuery を使用してすべてのクライアントに適切な画像を挿入することもできますが、サーバーがすべきことをクライアントに要求するのはばかげているように思えます。
Genshi テンプレート内でブラウザ情報を取得する方法はありますか? WSGI を使用して Trac を実行しているため、単に環境変数を呼び出すよりも少し難しくなります。の出力を調べましたがrepr(locals())
、問題を解決したように見えるものは何もありませんでした。また、Trac のソース コードを変更することも避けたいと思います。