2014-10-01 65 views
0

我有我的Django项目这个奇怪的问题。我现在使用Django与Apache & mod_wsgi,试图使其在生产模式下工作,但重定向url似乎不起作用。我只能访问网站索引页面,但不能访问任何子网址。即如果我去site-url.com/quzapp/它显示索引页面,这是完全一样,如果我去site-url.com/Django与mod_wsgi&apache不正确的重定向(无错误)

当我在开发服务器上运行它,一切正常正好。我总是定向到期望的页面。有线的事情是没有错误记录,即使我已经将日志设置为apache配置中的调试级别。

当我检查的访问日志它表明这样的:

"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文件并且答案是肯定的。打印命令会在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/quzapp/views.py文件在访问mysite/mysite/views.py后访问。

我想不出什么问题,并且没有记录错误,在访问日志中状态码总是200(好)。有没有人有关于这个问题的线索?

非常感谢您的帮助!

+1

设置您的索引网址结尾为“$”:url(r'^ $',views.index,name ='index') – 2014-10-01 08:42:02

+0

谢谢!你是对的。这解决了我的问题:) – Peine 2014-10-01 08:49:52

回答

2

问题出在你的主urls.py:你没有终止空的正则表达式,所以它匹配所有的东西。请确保使用最终的$:

请注意,您的打印语句不太可能有用,因为Url和视图文件都在启动时加载。您需要将打印语句放入视图函数中,但您已经知道正在调用哪个视图。

另外请注意,您不应该在主要的urls.py和quzapp中包含admin urls。

+0

嗨丹尼尔,非常感谢你的亲切帮助!这真的解决了我的问题!另外,非常感谢你的建议。我将删除多余的管理员网址:) – Peine 2014-10-01 08:45:22