3

django アプリケーションを apache サーバーにデプロイするときに問題が発生しました。からサイトにアクセスできる必要がありますhttp://localhost/suburl/。仮想環境を使用しています。

(短縮された)仮想ホストは次のようになります。

<VirtualHost *:80>
    [.. admin, documentroot, logfiles..]
    [.. static files alias ..]

    # WSGI-definitions:
    WSGIDaemonProcess spo python-path=/home/ai/project/source:/home/ai/project/virtualenv/lib/python2.6/site-packages
    WSGIProcessGroup spo
    WSGIScriptAlias /suburl /home/ai/project/source/django.wsgi
</VirtualHost>

(標準の) wsgi ファイルは次のようになります。

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

結果は次のとおりです。

Django は正しい URL を作成しません。すべての URLhttp://localhost/path_to_viewhttp://localhost/suburl/path_to_view. サブ URL を手動で呼び出すと、サイトが正しく表示されます。

mod_wsgi/django はすぐにこれをサポートする必要があることを教えてくれるソース (例: http://www.normanmurrin.com/blog/2013/05/07/portable-django-apps/ ) を見つけました。そうですね。reverse() と url-Tag を除きます。

それを機能させる手がかりについてのアイデアはありますか?

4

1 に答える 1

1

手がかりは、settings.py の FORCE_SCRIPT_NAME でした。

ありがとう@グラハム!

于 2013-06-24T08:21:05.507 に答える