2017-10-13 70 views
2

我正在运行使用NGINX和UWSGI的Django应用程序。django的urls.py的更改不反映在线

我的URL模式使用的是这样的:

urlpatterns = [ 
    url(r'^$', views.index), 
    url(r'^binaryQuestionApp/',include('binaryQuestionApp.urls')), 
    url(r'^pointlocations/',include('pointlocations.urls')), 
    url(r'^attributesFromPointsApp/',include('attributesFromPointsApp.urls')), 
    url(r'^admin/', admin.site.urls), 
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

然而,我希望把它改成这样:

urlpatterns = [ 
    url(r'^$', views.index), 
    url(r'^collections/',views.collections),     ## new line ## 
    url(r'^binaryQuestionApp/',include('binaryQuestionApp.urls')), 
    url(r'^pointlocations/',include('pointlocations.urls')), 
    url(r'^attributesFromPointsApp/',include('attributesFromPointsApp.urls')), 
    url(r'^admin/', admin.site.urls), 
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

然而,这推到我的服务器后(和.py文件呢更改服务器上),我一直得到Django的404页:

Using the URLconf defined in data_collection_project.urls, Django tried these URL patterns, in this order: 
^$ 
^binaryQuestionApp/ 
^pointlocations/ 
^attributesFromPointsApp/ 
^admin/ 
^media\/(?P<path>.*)$ 
The current URL, randomurltoget404page, didn't match any of these. 

如果我改变别的东西,为求的测试,我可以改变工作。例如,我可以对url(r'^$', views.index),最终指向的.html文件进行更改,这是我网站上的更新。

如何让Django更新URL模式?相关问题告诉我重新启动uwsgi或nginx,我尝试使用sudo service uwsgi restart无济于事。

+0

重启删除'urls.pyc'也许它加载它从缓存中? – Thomas

+0

你正在尝试一些没有在你的url conf中定义的随机url? –

+0

@MosesKoledoye我做了,会给404页。事实上,在这个例子中,我尝试导航到'mywebsite/randomurltoget404page' –

回答

3

正如您在您的问题中正确提到的那样,您需要在更改代码后重新加载/重新启动uWSGI服务。

如果这不起作用,则该服务正在加载缓存的数据,并且不会重新加载更改。要清除缓存的数据,请删除全部或相应的*.pyc文件,然后重新启动服务。

在你的情况下删除urls.pyc,然后用sudo service uwsgi restart

+0

我从virtualenv运行我的uwsgi。如果我使用'sudo service/home/virtualenv/virtualfolder/uwsgi restart',它的工作原理是否相同? –

+1

是的,这应该是一样的 – Thomas