我是web.py的新手,并且在代码href
的代码中使用了大量硬编码的网址,如同{
a
或/login
。
问题是,
当我设置我的应用程序在某个路径下运行时,而不是URL的根,如
/?type=example
该链接将指引我到某个地方
http://example.com/appname/
预期/想要的是<
http://example.com/login
我该如何处理?
答案 0 :(得分:3)
在模板全局变量中提供web.ctx.homepath,并在路径之前输出。
来自http://webpy.org/cookbook/ctx
homepath - 用户请求的路径部分 修剪当前的应用程序。那是homepath + path =路径 实际上是由用户在HTTP中请求的。例如。 / admin这似乎是 从环境变量REAL_SCRIPT_NAME启动时派生。 它会影响web.url()将提供给提供的URL的内容。这反过来 影响web.seeother()的去向,可能会与之交互不良 你的网址重写方案(例如mod_rewrite)
template_globals = {
'app_path': lambda p: web.ctx.homepath + p,
}
render = template.render(my_template_dir, globals=template_globals, base="mylayout")
然后您应该能够在模板中输出app_path
<a href="$app_path('/login')">Login</a>