我有一个 Tornado Web 服务器,上面运行着一个应用程序,所以当我去:

本地主机:8888/

我看到了我的应用程序的主页。例如,当我去

  • 本地主机:8888/static/image/logo.png
  • 本地主机:8888/关于
  • 本地主机:8888/联系
  • 等。

  • 我也得到了那些相关的物品。

    我的问题是,有没有办法更改根位置,以便所有这些 URL 都将 URL 的第一部分替换为:
  • 本地主机:8888/myApplication/
  • 本地主机:8888/myApplication/static/image/logo.png
  • 等等...

  • 对不起,如果这是一个简单的问题!似乎无法找到答案。

    请注意,我想要一个解决方案,而不是手动更改所有页面路由正则表达式以包含该前缀。

    最佳答案

    如果您使用 tornado.web Web 框架,这些根 URL 将作为正则表达式存储在 Web 应用程序对象中。因此,使这项工作的一种“hacky”方法是更改​​正则表达式。

    假设您的 Web 应用程序设置为

    my_application = tornado.web.Application([(r"/", my_handler), (r"/about", about_handler),])
    

    在开始事件循环之前,您可以遍历处理程序并修改每个处理程序的正则表达式,如下所示:
    for handler in my_application.handlers[0][1]:
        handler.regex = re.compile(handler.regex.pattern.replace('/', '/myApplication/', 1))
    

    关于python - 有没有办法在 python Tornado web 框架中更改根 URL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35776520/

    10-12 07:39
    查看更多