2011-02-10 2 views
4

Djangoアプリケーションが非ルートApacheのURLの下に配備されている(WsgiScriptAliasと/ suburl /path_to_django.wsgi{%のURLの%}フォームのタグと django.core.urlresolvers.reverse機能を考慮してSCRIPT_NAME変数と戻りのURL /suburlただし/ path_to_my_viewdjango.core.urlresolvers.resolve不正な動作

、私はdjango.core.urlresolversを使用する場合.resolve resoする関数それらのURLを怠るとエラーが発生します。解決策を呼び出す前に、SCRIPT_NAMEの生成されたURLを削除するように強制します。これは予想される動作ですか、私はすべてを誤解していますか?

よろしくお願いいたします。

答えて

1

私は、問題の同じ種類を持って:wsgi didntは外で私のApacheの設定

  • django.core.urlresolvers.reverseへの呼び出しで定義されて

    • SCRIPT_NAMEは、任意のビューまたはリソースでの呼び出しを接頭
    • を付加しましたプレフィックスの先頭に同じメソッドが追加されました

    次のコード行を使用して接頭辞を自動的に付けることができました。

    # in settings.py 
    from django.core.urlresolvers import set_script_prefix 
    ... 
    FORCE_SCRIPT_NAME = "your-prefix" 
    set_script_prefix(FORCE_SCRIPT_NAME) 
    ... 
    

    最初の行は、あなたのwsgiが毎回あなたの接頭辞を使用するようにします。 2番目の接頭辞は接頭辞を設定するので、reverseがそれを見つけます。

    apache confに同じ接頭辞を付ける必要があります。少し冗長ですが、私が見つけたクリーンな修正です。

  • 関連する問題