djangoサイトを新しいサーバーに移動中です。古いサーバーでは、djangoサイトはmysite.com/のようにアクセスされていましたが、今はmysite.com/mysite経由でアクセスし、mysite.comに別の処理を任せたいと考えています。私はこのようにapacheに次の変更を加えました:
WSGIDaemonProcess mysite processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup mysite
WSGIScriptAlias /mysite /srv/www/django.wsgi
#WSGIScriptAlias /mysite /srv/www/django.wsgi #previous config
<Directory /srv/www/mysite/mysite >
Order allow,deny
Allow from all
</Directory>
Alias /site_media "/srv/www/mysite/site_media/"
Alias /admin_media "/srv/www/mysite/admin_media/"
これはうまく機能しているようです。ブラウザをmysite.com/unity/adminに向けると、管理ページに正しくアクセスし、それぞれのアプリを正しく表示できます。ただし、カスタムテンプレートを使用するものはすべて中途半端なようです。たとえば、以下のテンプレートに次のようなエントリがあります。
{% ifcodable cl.model %}<li><a href="/report/{{ app_label }}/{{ cl.opts.verbose_name }}" class="link">Coding Report</a></li>{% endifcodable %}
これにより、ページがにリダイレクトされます
http://mysite.com/report/texas/texas
とは対照的に
http://mysite.com/mysite/report/texas/texas
テンプレートが正しく設定されていないのか、それとも新しいエイリアスと関係があるのかわかりません。私のurls.pyは次のようになります:
from django.conf.urls.defaults import *
from django.conf import settings
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
.....
(r'^report/([a-zA-Z]+?)/([a-zA-Z]+?)/(overall|\d+)/{0,1}$', 'mysite.k.views.performance'),
(r'^report/(.+?)/(.+?)/{0,1}$', 'mysite.k.views.report'),
.....
私のdjango.wsgiファイルは次のようになります。
import os,sys
sys.path.append('/srv/www/mysite')
sys.path.append('/srv/www/mysite/mysite')
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
問題を修正するために何をすべきかわかりません。私はdjangoにかなり慣れていないので、邪悪な単純な解決策がある場合はお詫びします。アドバイスをいただければ幸いです。