django的urls.py的更改不反映在线
我正在运行使用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
无济于事。
正如您在您的问题中正确提到的那样,您需要在更改代码后重新加载/重新启动uWSGI服务。
如果这不起作用,则该服务正在加载缓存的数据,并且不会重新加载更改。要清除缓存的数据,请删除全部或相应的*.pyc
文件,然后重新启动服务。
在你的情况下删除urls.pyc
,然后用sudo service uwsgi restart
我从virtualenv运行我的uwsgi。如果我使用'sudo service/home/virtualenv/virtualfolder/uwsgi restart',它的工作原理是否相同? –
是的,这应该是一样的 – Thomas
重启删除'urls.pyc'也许它加载它从缓存中? – Thomas
你正在尝试一些没有在你的url conf中定义的随机url? –
@MosesKoledoye我做了,会给404页。事实上,在这个例子中,我尝试导航到'mywebsite/randomurltoget404page' –