5

main()関数でピラミッドの絶対アプリケーションURLを取得する方法はありますか?グローバル設定に追加したいので、どこでも(テンプレートとjsファイルで)呼び出すことができます。ピラミッドドキュメントには役立つ関数がいくつかありますが、それらはすべてリクエストオブジェクトが必要であり、ビューで呼び出す必要があります。ありがとう。

4

2 に答える 2

4

Pyramid(ほとんどのWSGIアプリケーションと同様)は、任意のドメインとURLプレフィックスにマウントできます。したがって、アプリケーション自体は、アプリケーションに具体的にコーディングしない限り(たとえば、INI設定)、実際にどのURLが原因であるかを認識しません。

これがrequest.application_urlが存在する理由です...application_urlは、アプリケーションへのリクエストをプロキシしているドメインとURLプレフィックスの数に基づいて、リクエストごとに異なる可能性があるためです。

于 2011-06-15T15:55:47.173 に答える
3

インデックスルートの完全なルート(私の場合は「home」)を取得します。

これをメインラッパーのmakoテンプレートに設定して、すべてのJS呼び出しがそれを参照して、ajax呼び出しなどの適切なパスを構築できるようにします。

    <script type="text/javascript" charset="utf-8">
        <%
            app_url = request.route_url('home').rstrip('/')
        %>
        APP_URL = '${app_url}';
    </script>
于 2011-06-14T18:59:47.683 に答える