私が持っているもの:
異なるドメインを持つ 4 つの仮想サーバーを持つ Apache http サーバー:
www.mydomain.com points to /var/www/mydomain/htdocs (php code)
そしてそれは動作します。他のすべてのドメインは無関係です。
別のマシンで、2 つのアプリを含む django プロジェクトを設計しました。これは、django のビルトイン サーバーでうまく動作します。
必要なもの:
www.mydomain.com pointing to /var/www/mydomain/htdocs (php code)
www.mydomain.com/recsys pointing to /opt/repsys (django code)
PHP コードをルートに保持し、django を /repsys 内にインストールしたいと考えています。
django コードをルートに配置できますが、/repsys 内に配置しようとすると、2 つの問題が発生します。
- settings.py ファイルのすべての URL に /repsys を配置する必要がありました (これは問題ではありませんが、私には奇妙です)。
そして、djangoコードからこのエラーがあります:
引数 '(u'viewproject',)' およびキーワード引数 '{}' を持つ 'ajax' の逆が見つかりません
これはURLの変更によるものであることがわかります(現在は/ repsysが含まれています)。djangoはこのURLを逆にする方法を知りませんが、それを修正する方法がわかりません...
私のジャンゴは: 1.5.1
ここに私のwsgi.pyがあります
import os, sys
sys.path.append('/opt/repsys')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "repsys.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
そして、この仮想サーバーの apache conf ファイル:
LoadModule wsgi_module modules/mod_wsgi.so
WSGISocketPrefix /var/run/wsgi
#WSGIPythonPath /opt/repsys/
<VirtualHost *:80>
WSGIDaemonProcess repsyssite display-name=%{GROUP}
WSGIProcessGroup repsyssite
ServerAdmin blahhh@gmail.com
ServerName www.mydomain.com
DocumentRoot "/var/www/mydomain/htdocs"
WSGIScriptAlias /reprep /opt/repsys/repsys/wsgi.py
Alias /reprep/static /opt/repsys/static_serve
Alias /reprep/media /opt/repsys/media
Alias /admin_media /home/myuser/Django-1.5/django/contrib/admin/media
<Directory opt/repsys>
Order allow,deny
Allow from all
</Directory>
# Logfiles
ErrorLog /var/www/logs/glob/error.log
CustomLog /var/www/logs/glob/access.log combined
</VirtualHost>
私のメインの url.py には以下が含まれます:
url(r'^report/', include('report.urls', namespace="report")),
そして私の report/url.py には以下が含まれます:
url(r'^(?P<fn>\w+)/ajax/$', views.ajax, name='ajax'),
そして、プロジェクトをルートに置くと機能するが、サブフォルダー内にあると失敗する行は次のとおりです。
$('#viewreportdiv').load("{% url 'report:ajax' 'viewproject' %}", {proj: id});
誰かがそれを修正する方法を指摘できますか?