金字塔:获取应用程序绝对URL

问题描述

| 有什么方法可以在main()函数获取金字塔绝对应用程序URL? 我想将其添加到全局设置中,因此可以在每个位置(在模板和js文件中)调用它。 在金字塔文档中,有些功能会有所帮助,但是所有功能都需要一个请求对象,并且必须在视图中调用。 谢谢。     

解决方法

        金字塔(像大多数WSGI应用程序一样)可以安装在任何域和url前缀上。因此,除非您将代码专门编码到应用程序中(例如INI设置),否则应用程序本身实际上并不知道它负责什么网址。 这就是为什么request.application_url存在...的原因,因为每个请求的application_url可能会有所不同,具体取决于您拥有多少个域和url前缀,这些域和URL前缀会将请求代理到您的应用程序。     ,        我只得到索引路由的完整路由,在本例中为“'home \'”: 我在主包装器mako模板中设置了此代码,以便我所有的JS调用都可以引用它来为ajax调用/ etc建立正确的路径
    <script type=\"text/javascript\" charset=\"utf-8\">
        <%
            app_url = request.route_url(\'home\').rstrip(\'/\')
        %>
        APP_URL = \'${app_url}\';
    </script>