尝试用 Django 写了一个简单的企业站,部署过程中出了不少问题,不过还好都一一解决了。
“激动不已”的看到了首页,长出一口气:“总不会再出什么其他问题了吧!”随手点了一个内部链接:
—————————————————
TypeError at about
'NoneType' object is not iterable
—————————————————
这回可晕倒了,怎么会有这样一个错误?
接着往下看,发现错误是由于丢失了一个反斜线引起的:
Request Method: | GET |
---|---|
Request URL: | http://www.i-fang.comabout |
Exception Type: | TypeError |
Exception Value: |
'NoneType' object is not iterable |
Exception Location: | /usr/lib/python2.5/site-packages/django/core/handlers/base.py in get_response, line 77 |
Python Executable: | /usr/bin/python |
Python Version: | 2.5.2 |
Python Path: | [‘/home/www/www.i-fang.com/’, ‘/usr/lib/python25.zip’, ‘/usr/lib/python2.5’, ‘/usr/lib/python2.5/plat-linux2’, ‘/usr/lib/python2.5/lib-tk’, ‘/usr/lib/python2.5/lib-dynload’, ‘/usr/local/lib/python2.5/site-packages’, ‘/usr/lib/python2.5/site-packages’, ‘/var/lib/python-support/python2.5’] |
Server time: | Tue, 5 May 2009 10:25:17 +0800 |
在 Request URL 中域名和路径中间的反斜线丢失了。
是 urls.py 配置的问题?检查、试验……不是!
是 apache 配置的问题?检查、试验……还不是!
所有的内容跟 Django 手册上的完全一致,到底是怎么回事呢?
看到这个邮件列表的内容,才明白,有时手册是不能随便抄的:
—————————————————
Take a look at the django.root PythonOption described here:
http://docs.djangoproject.com/en/dev/howto/deployment/modpython/?from…
Are you using that option? If, yes, remove that option entirely and
try again.
—————————————————
去掉了 apache 配置文件中的“PythonOption django.root /”,重启 apache 后,一切访问正常了。