【发布时间】:2014-11-26 00:55:02
【问题描述】:
我的 django 项目遇到了这个奇怪的问题。我现在将 Django 与 apache 和 mod_wsgi 一起使用,试图使其在生产模式下工作,但是 url 重定向似乎不起作用。我只能访问站点索引页面,但不能访问任何子 URL。即如果我去 site-url.com/quzapp/ 它会显示索引页面,这与我去 site-url.com/ 完全相同
当我在开发服务器上运行它时,一切正常。我总是被引导到所需的页面。连线的事情是,即使我在 apache 配置中将日志设置为调试级别,也没有记录错误。
当我检查 access_log 时,它显示如下:
"GET /quzapp/ HTTP/1.1" 200 1935 (the quzapp page)
"GET / HTTP/1.1" 200 1935 (the site index)
日志看起来不错,但除了 site_index.html 之外我看不到任何页面...可能有什么问题?
以下是网站的简要结构: 该项目称为 mysite,主要设置文件位于一个子目录中,也称为 mysite。 quzapp 是一个 django 应用程序。
mysite/
db.sqlite3
manage.py
mysite/
settings.py
urls.py
views.py
wsgi.py
quzapp/
__init__.py
urls.py
views.py
admin.py
forms.py
models.py
templates/
quzapp/
base.html
…...
template/
siteindex.html
…..
static/…
media/….
mysite/mysite/urls.py的主要部分:
urlpatterns = patterns('',
url(r'^', views.index, name='index'),
url(r'^quzapp/',include('quzapp.urls')),
url(r'^admin/', include(admin.site.urls)),
)
mysite/quzapp/urls.py的主要部分:
urlpatterns = patterns('',
url(r'^$', views.initial_form, name='index'),
url(r'^allimage/$', views.allimage, name='allimage'),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^readytostart/$','questionnaires.views.register_success'),
url(r'^audio/$', views.audio, name='audio'),
url(r'^text/$', views.text, name='text'),
url(r'^end/$', views.endpage, name='endpage'),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()
我打印了一些文本,看看是否所有的 urls.py 文件都被访问了,答案是肯定的。 print 命令在 error_log 中留下文本消息,显示首先访问 mysite/mysite/urls.py,然后访问 mysite/quzapp/urls.py。
在 mysite/mysite/views.py 中它返回 render_to_response('siteindex.html')。我想这就是我访问siteindex页面的方式。其他页面在 mysite/quzapp/views.py 中呈现。我再次打印出一些文本消息,并在错误日志中显示访问 mysite/mysite/views.py 后访问了 mysite/quzapp/views.py 文件。
我想不出出了什么问题并且没有记录错误,在访问日志中状态代码始终为 200(正常)。有人知道这个问题吗?
非常感谢您的帮助!
【问题讨论】:
-
设置索引 url 以 "$" 结尾:url(r'^$', views.index, name='index')
-
谢谢!你说的对。这解决了我的问题:)