11

以下は、関連する構成ファイルです。これもhttp://dpaste.com/97213/にあります。

'example.com/'にアクセスすると、ドキュメントルートに配置したindex.htmlファイルが表示されるため、apache構成は現在機能しています。

プレフィックス「/d」でDjango/appsを提供したいので、「example.com/d/」はデフォルトのアプリをロードし、「example.com/d/app3」はURLで構成されているように別のアプリをロードします。 py。

LinuxでDjangoにサービスを提供し、提案されたmod_wsgiを使用しています。

現在、「example.com/d」でチケットアプリにアクセスできますが、@ login_requiredデコレータがログインページに送ろうとすると、期待どおりではなく「example.com/accounts/login」に送信されます。 'example.com/d/accounts/login'。

デフォルトのアプリは正しく読み込まれるため、ここで何が間違っているのか、またはこれがURLを生成する際のDjangoのバグであるかどうかはわかりません。

助言がありますか?

編集: 注として、apache構成行を変更した場合:WSGIScriptAlias / d /home/blah/django_projects/Tickets/apache/django.wsgi to WSGIScriptAlias //home/blah/django_projects/Tickets/apache/django.wsgiアプリケーション、コメント、ログインはすべて正常に機能します。'example.com/admin'に移動しても管理者が読み込まれますが、管理メディアは壊れたままになっているため、スタイルシートは読み込まれません。

---構成は次のとおりです。

#
# /home/blah/django_projects/Ticket/urls.py
#
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^', include('ticket.urls')),
    (r'^admin/', include(admin.site.urls)),
    (r'^comments/', include('django.contrib.comments.urls')),
)


#
# /home/blah/django_projects/Ticket/apache/django.wsgi
#
import os, sys

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')

sys.path.append('/home/blah/django_projects')
sys.path.append('/home/blah/django_projects/Tickets')

os.environ['DJANGO_SETTINGS_MODULE'] = 'Tickets.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()


#
# /etc/apache2/sites-available/django_tickets_wsgi (apache conf)
#
NameVirtualHost *
<VirtualHost *>  

    Alias /media /home/blah/django_projects/Tickets/media


    WSGIScriptAlias /d /home/blah/django_projects/Tickets/apache/django.wsgi
    WSGIDaemonProcess exmaple_com user=blah group=blah processes=1 threads=10
    WSGIProcessGroup example_com

    ServerAdmin localhost@example.com
    ServerName example.com

    DocumentRoot /var/www/

    <Directory /var/www/>
        Options -Indexes FollowSymLinks -MultiViews -Includes 
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature Off

</VirtualHost>
4

2 に答える 2

7

これは、 Django Apacheリダイレクト問題の重複の可能性があります。これは、その答えがこの問題を解決したためです。

私は最終的に、必死になって、ここで「関連する質問」のほとんどすべてを開くことによって、その答えに出くわしました。私の観点からすると、私の質問にはいくつかの貴重な「検索しやすい」単語が含まれていると思います。

編集:答え:(alex vasi経由)

試すべきこと:

  1. 「sites」フレームワークで現在のドメインを「yourdomain.tld/cflow」に変更します。djangoadminまたはdumpdata/loaddatamanage.pyコマンドを使用して簡単に実行できます。
  2. あなたのサイトはlogin_requiredデコレータを使用しているようです。その特定のケースでは、settings.pyに追加できます。

    LOGIN_URL='/ [プレフィックス] /accounts / login /'

于 2009-09-23T16:43:27.987 に答える
2

urls.pyで、urlpatternsの名前をbase_urlpatternsに変更します。次に、同じファイルの最後に次の定義を追加します。

urlpatterns = patterns('',
    '^', include(base_urlpatterns), # iff you wish to maintain the un-prefixed URL's too
    '^your_prefix/', include(base_urlpatterns),
)
于 2012-04-18T13:43:32.790 に答える