我正在为运行在Nginx服务器上的Django站点设置登录系统。我得到以下调试404页面:Django没有反映对urls.py的更改
Using the URLconf defined in it.urls, Django tried these URL patterns, in this order:
^admin/
^login/ [name='main_login']
^$ [name='index']
^laptops/
^assets/
^mardes/
^users/
^jobs/
^static\/(?P<path>.*)$
The current URL, account/login/, didn't match any of these.
这似乎是使用旧版本的it.urls文件;目前看起来是这样的:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls import patterns, include, url
from django.views.generic import TemplateView
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls) ),
url(r'^account/', include('account.urls', namespace='account'), name='account' ),
url(r'^laptops/', include('laptops.urls', namespace='laptops') ),
url(r'^assets/', include('assets.urls', namespace='assets') ),
url(r'^mardes/', include('mardes.urls', namespace='mardes') ),
url(r'^users/', include('users.urls', namespace='users') ),
url(r'^jobs/', include('jobs.urls', namespace='jobs') ),
url(r'^', TemplateView.as_view(template_name='it/index.html'), name='index' ),
) + staticfiles_urlpatterns()
正如你所看到的,它没有r'^ login /'模式。
我在我的settings.py文件中将LOGIN_URL设置为'/ account/login /',但是@login_required装饰器正在加载'/ login /'。当我在@login_required调用中指定login_url ='/ account/login'时,新URL也会被忽略。
我已重新启动Nginx(通过启动和停止,并运行'重新启动'),这并没有什么不同。我还在nginx.conf文件中设置了'sendfile = off'。我猜测有缓存存储在某处(回复:How to clear the cache of nginx?)。
如果您需要更多详细信息,请让我知道。
你试过删除所有'pyc'文件吗? '找。 -name \ *。pyc -type f -delete' – michaelb 2014-10-01 14:58:57
@michaelb是的,我确实尝试过,没有更改,不幸的 – bcvery1 2014-10-01 15:06:47
你如何运行django服务器?通过uwsgi ...? – michaelb 2014-10-01 15:10:15