0

私は web.py を初めて使用しhref、タグ内のコードで多くのハードコードされた URL を使用しaます。
/login/?type=example

問題は、
アプリケーションを URL のルートではなく、特定のパスで実行するように設定したときです。
http://example.com/appname/

リンクは私を次のような場所に誘導します
http://example.com/login

期待される/望まれるものは
http://example.com/appname/login

どうすればこれを処理できますか?

4

1 に答える 1

3

テンプレート グローバルで web.ctx.homepath を使用できるようにし、パスの前に出力します。

http://webpy.org/cookbook/ctxから

homepath – 現在のアプリから切り取られた、ユーザーが要求したパスの部分。つまり、ホームパス + パス = ユーザーが HTTP で実際に要求したパスです。例 /admin これは、起動時に環境変数 REAL_SCRIPT_NAME から導出されるようです。これは、提供された URL の前に web.url() が何を追加するかに影響します。これは、web.seeother() がどこに行くかに影響し、URL 書き換えスキーム (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>
于 2013-02-04T06:44:45.550 に答える