10

http://server/app/hellodjango (gunicorn wsgi localhost ポート 8000) への私のプロキシ (nginx パブリック ポート 80) は、アプリケーション "/app" へのパスを取り除き/helloます。http://server/app/admin/admin

<form action="/admin/"...問題は、管理サイトがログイン画面などの絶対 URL で出力を生成することです。したがって、ユーザーには管理者ログイン画面が表示されますが、http://server/admin存在しないものに投稿されます。(相対 URL を使用し、任意の場所で機能することを望んでいました。)

form action="/app/admin/"ページ出力で生成されるすべての URLのように、管理ページで "/app" を普遍的に先頭に追加する最も簡単な方法は何ですか? 単純な定義のようにDjangoに組み込まれたものを望んでおり、特別なフィルターを作成してテンプレートを書き直してそれらを使用する必要はありませんが、見つけられないようです。

4

2 に答える 2

17

FORCE_SCRIPT_NAME のドキュメントを参照してください:

https://docs.djangoproject.com/en/dev/ref/settings/#force-script-name

デフォルトの「なし」ではなく「/app」に設定します。

于 2012-05-31T02:50:35.797 に答える
0

最も簡単な方法は、以下のような独自の wsgi ディスパッチャーを作成することです。

def application(environ, request_response):
  # do whatever you want with path

  sys.path.append(path_to_django_project)
  os.environ['DJANGO_SETTINGS_MODULE'] = 'proj_name.settings'

  # pass control to django
  import django.core.handlers.wsgi
  app_entry_point = django.core.handlers.wsgi.WSGIHandler()
  return app_entry_point(environ,request_response)
于 2013-09-01T18:54:25.983 に答える