我使用mod_wsgi将pylons应用程序集成到apache webserver中。 wsgi的配置是这样的:
WSGIScriptAlias /mtrace /var/lib/lgmtrace/lgmtrace.wsgi
但是,如在http://pylonsbook.com/en/1.1/urls-routing-and-dispatch.html#internal-static-routes中所述,在mako模板中使用h.url_for不会为静态内部路由生成正确的URL。我已经检查了pylons的 BaseController 中的环境变量,并且 SCRIPT_NAME 已正确设置为/ mtrace。
所以,我决定在routes包中查看 url_for 函数的代码。事实证明,从 request_config 返回的 config 变量从未设置 environ 属性。因此,从未执行过要求 config.environ.get('SCRIPT_NAME')的代码。
我想知道是否有人可以帮我解决这个问题,因为我已经在这个问题上坚持了很长时间。有没有人面临同样的情况?如何修复它以便可以正确解析URL。我在google和stackoverflow上找不到任何关于我的问题的结果,所以我猜它必定是导致这种情况的某种配置错误。为了您的信息,我使用Fedora 14为mod_wsgi(3.2.2),apache服务器(2.2.17),pylons(1.0),路由(1.12)提供的所有默认软件包。
谢谢。
答案 0 :(得分:1)
有人建议我尝试使用Route-1.12.3查看问题是否已解决。它没有使用该版本解决。哎呀,通过手动将请求['SCRIPT_NAME']预先添加到mako模板中的url来解决此问题。我想知道是否有人对这个问题有正确答案。