我认为同样的机制既适用于开发服务器,也适用于Apache作为我的Web服务器,但我目前非常困惑。
我可以在使用Django开发服务器时访问URL,如下所示
__http://devserver/my_application/
当我将我的Web服务器切换到Apache时,我收到所有URLs.py条目的Django 404错误。
尝试访问__http:// devserver /返回以下内容
Using the URLconf defined in antrum.urls, Django tried these URL patterns, in this order:
^my_application/$
^my_application/?page=(?P<page>\d+)
^my_application/new
^my_application/(?P<candidate_id>\d+)/$
^my_application/(?P<candidate_id>\d+)/update/$
^my_application/(?P<candidate_id>\d+)/delete/$
^my_application/search/$
^admin/doc/
^admin/
The current URL, , didn't match any of these.
尝试访问http://devserver/my_application/会产生以下输出
{'path': u'my_application/'}
我可能犯了一个蹩脚的错误但现在无法看到。我可能想要检查什么?
这是我的Apache配置
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE project.settings
PythonOption django.root /
PythonDebug On
PythonPath "['/home/user/','/home/user/project/'] + sys.path"
</Location>
<Location "/media/">
SetHandler None
</Location>
以下是我的发现:
答案 0 :(得分:1)
尝试使用mod_wsgi而不是modpython。如果您有相同的问题,那么修改您的视图,尤其是HttpResponse对象(mimetype参数)。无论如何在django 1.3发布后不再支持modpython,我认为最好永远离开modpython
答案 1 :(得分:1)
安装在网站的根目录时,请勿设置django.root变量。只应在安装在子URL的地方使用。