pylons url_for не дает должной внутренней статики. SCRIPT_NAME не вставлен в разрешенный URL

Я интегрирую приложения 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).

Спасибо.


person wcang    schedule 13.07.2011    source источник


Ответы (1)


Кто-то предложил мне попробовать Route-1.12.3, чтобы посмотреть, решена ли проблема. Это не было решено с использованием этой версии. Черт возьми, можно обойти эту проблему, добавив запрос ['SCRIPT_NAME'] к URL-адресу в шаблоне mako вручную. Я хотел бы знать, есть ли у кого-нибудь правильный ответ на этот вопрос.

person wcang    schedule 14.07.2011
comment
Один добрый товарищ из группы pylons-обсуждения указал мне, что решение этой проблемы - использовать url вместо h.url в шаблоне mako. Предложенное им решение работает, и его следует использовать вместо него. - person wcang; 19.07.2011
comment
У меня вроде нормально работает. Обратите внимание на разницу между h.url("/about") и h.url("about"). - person Felix; 07.07.2015