Я интегрирую приложения pylons в веб-сервер apache с помощью mod_wsgi. Конфигурация для wsgi такая:
WSGIScriptAlias /mtrace /var/lib/lgmtrace/lgmtrace.wsgi
Однако использование h.url_for в шаблоне mako не дает правильного URL-адреса для статического внутреннего маршрута, как описано в http://pylonsbook.com/en/1.1/urls-routing-and-dispatch.html#internal-static-routes. Я проверил переменную среды в BaseController пилонов, и SCRIPT_NAME был правильно установлен на / mtrace.
Итак, я решил изучить код функции url_for в пакете маршрутов. Как оказалось, атрибут environment никогда не устанавливался для переменных config, возвращаемых из request_config. В результате код, вызывающий config.environ.get ('SCRIPT_NAME'), так и не был выполнен.
Интересно, может ли кто-нибудь помочь мне в этом вопросе, потому что я уже довольно давно застрял в этой проблеме. Кто-нибудь сталкивался с такой же ситуацией? Как это исправить, чтобы URL-адрес разрешался правильно. Я не смог найти никаких результатов для моей проблемы в Google и stackoverflow, поэтому я предполагаю, что это должна быть какая-то ошибка конфигурации, которая приводит к этой ситуации. К вашему сведению, я использую все пакеты по умолчанию, предоставляемые Fedora 14 для mod_wsgi (3.2.2), сервера apache (2.2.17), pylons (1.0), routes (1.12).
Спасибо.