我有一个包含一些应用程序的django项目。主urls.py包含我启用的应用程序中的urls.py,并且都很好。在django项目中映射主要URL的最佳方式是什么?
现在我想配置该项目,以便当您转到http://testsite/时,您将获得当您转至http://testsite/app/时所获得的相同页面。
我可以通过复制项目urls.py中的应用程序urls.py中的相应行来做到这一点,但这种感觉很脏。
任何人都知道更好的方法?
我有一个包含一些应用程序的django项目。主urls.py包含我启用的应用程序中的urls.py,并且都很好。在django项目中映射主要URL的最佳方式是什么?
现在我想配置该项目,以便当您转到http://testsite/时,您将获得当您转至http://testsite/app/时所获得的相同页面。
我可以通过复制项目urls.py中的应用程序urls.py中的相应行来做到这一点,但这种感觉很脏。
任何人都知道更好的方法?
建立一个redirect_to的从第一个URL到第二,即:
from django.conf.urls.defaults import patterns, url, include
from django.views.generic.simple import redirect_to
urlpatterns = patterns('',
# Example:
url(r'^$', redirect_to, {'url':'/app/'}),
url(r'^app/', include('app.urls')),
# ...
)
HTH
一个重定向是要走的路,因为你不希望为同多个标准网址资源(浪费谷歌果汁)。理想情况下,您应尽可能靠近堆栈边缘进行重定向,以节省服务器资源。所以你可以做一个Django的redirect_to urlconf条目,但是你最好用Apache或者nginx或者insert-your-webserver--这里重定向,所以最初的请求根本就不会碰到Django。