【发布时间】:2017-05-11 04:03:32
【问题描述】:
我有一个由用户托管的 CherryPy 网络应用程序。通常,主应用程序是这样安装的:
cherrypy.tree.mount(root,
'/',
root.conf
)
但是,为了让它在 nginx 等反向代理之后工作,它需要能够挂载到其他地方,无论用户选择什么路径:
mount = '/my_application'
cherrypy.tree.mount(root,
mount,
root.conf
)
mount 可以是用户选择的任何东西。
现在的问题是链接坏了。
raise cherrypy.HTTPRedirect("/news")
不再有效。当我需要重定向到 address:port/my_application/news 时,它会重定向到 address:port/news。
我可以为每个应用程序路径前面的 url 创建一个条件:
if mount != '/':
url = mount + '/news'
raise cherrypy.HTTPRedirect(url)
但必须有更好的方法来做到这一点。我查看了 Request Dispatching 但我无法让它即时重写 url。
处理这种情况的最佳方法是什么?
【问题讨论】:
标签: python-2.7 url-routing cherrypy