我正在使用NGINX和UWSGI运行Django应用程序。
我的网址模板曾经是这样的:
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更新URLpatterns?相关问题告诉我重启uwsgi或nginx,我尝试使用sudo service uwsgi restart
无效。
答案 0 :(得分:5)
正如您在问题中正确提到的,您需要在更改代码后重新加载/重新启动uWSGI服务。
如果这不起作用,则服务正在加载缓存数据,并且不会重新加载您的更改。要清除缓存的数据,请删除所有或相应的*.pyc
文件,然后重新启动该服务。
在您的情况下,请删除urls.pyc
,然后使用sudo service uwsgi restart