Я пытаюсь включить некоторые изображения в шаблон Genshi для своего плагина Trac, но он всегда отображает только альтернативный текст, потому что он не может найти изображения.Включая изображения в шаблон Genshi/Trac
У меня есть следующий (X) HTML код:
<div>
<img src="file://c:/path/to/image.png" alt="asdf" />
</div>
Когда я использую этот код с помощью простого HTML-файла и откройте его в браузере, изображение отображается правильно, это означает, что оба пути и синтаксис верны.
Но когда я вставляю фрагмент кода в шаблон Genshi и использую его в Trac, изображение не может быть найдено. Однако, когда я смотрю на исходный код HTML в веб-браузере и копирую URL-адреса на новую вкладку браузера, он снова отображается правильно. Это означает, что только сервер не может найти изображение.
Изображения находятся в каталоге внутри файла python-egg, а путь указывает непосредственно на каталог, созданный Trac, который также содержит мои файлы CSS и HTML, оба из которых загружены правильно. Изображения правильно указаны в сценарии установки, который создает яйцо.
Как мне связать изображения в (X) документах HTML при их использовании с сервером?
Есть ли способ включить изображения в документы Genshi? (Я не нашел его.)
В Trac вы должны использовать хром-относительные пути. Чтобы обслуживать образ из вашего каталога 'htdocs' среды, используйте'/chrome/site/image.png', или используйте [доступные переменные шаблона] (http://trac.edgewall.org/browser/tags/trac- 1.0.9/ПРОФ/шаблоны/about.html? отметки = 38 # L33). Для плагина вы должны реализовать [ITemplateProvider] (http://trac.edgewall.org/wiki/TracDev/PluginDevelopment/ExtensionPoints/trac.web.chrome.ITemplateProvider). – RjOllos
Вы имеете в виду, что для плагина я должен использовать ITemplateProvider вместо этого, используя класс chrome, или «дополнительно»? У меня уже есть компонент, реализующий поставщик ITEMplate, и возвращаемый путь верен. Должен ли я сам вызвать get_htdocs_dirs() или есть способ доступа к htdocs, позволяя Trac вызывать метод get_htdocs_dirs()? –
Я вас неправильно понял, я думал, вы имеете в виду класс хром. Теперь, используя правильный путь, он работает. Я напишу ответ ниже, чтобы объяснить, что я сделал. –