2011-06-20 9 views
0

routes.url_forを使用してコントローラーアクションへのリンクを生成し、webhelpers.html.tagsで定義された関数を使用して静的ファイル(CSS、javascript、imagesなど)にリンクするpylons web-appがあります。私のweb-appがサーバーのルートでホストされている間(つまり、web-appが '/'から実行されている間)、これはうまく動作します。しかし、 '/ foobar /'のような別の場所でweb-appを移動すると、url_forのリンクは完全に機能しますが、webhelpers.html.tagsの関数は引き続き '/ path/to/resource'を指すリンクを生成します'/ foobar/path/to/resource'よりも優先されます。WSGI SCRIPT_NAMEプレフィックスを使用したPython webhelpers.html.tags

私の理解では、WSGIはアプリケーションに至るパスを含むSCRIPT_NAMEという環境変数を定義しています(この例では/ foobarです)。私の推測では、url_forはこの環境変数に注意を払い、生成されたURLをそれに応じて変更しています。

モジュールに同じ処理をさせる方法はありますか?

答えて

1

これを正しく読んでいる場合は、url_forが適切なURLを含む文字列を正しく返すように思えます。しかし、私が見る限りでは、さまざまなウェブヘルパーにURL文字列を渡します。

あなたはこのようなことをしていますか?

link_to('something', url(controller='path', action='to')) 
+0

これは、コントローラにリンクしている場合にのみ機能します。イメージ、CSSファイル、またはJSスクリプトにリンクしようとしている場合、 'url'(または' url_for')に与えるパラメータは? – Thomi

+1

urlも静的なパスをとることができます。 'url( '/ css/base.css')' – YCYCYC

+0

ありがとうございました。 – Thomi

関連する問題