对 django urls.py 的更改未在线反映
Changes to django's urls.py not reflected online
我是 运行 一个使用 NGINX 和 UWSGI 的 Django 应用程序。
我的 URLpatterns 曾经是这样的:
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
无济于事。
正如您在问题中正确提到的那样,您需要在更改代码后reload/restart uWSGI 服务。
如果这不起作用,则服务正在加载缓存数据并且不会重新加载您的更改。要清理缓存数据,请删除所有或相应的 *.pyc
文件并重新启动服务。
在你的情况下删除 urls.pyc
然后用 sudo service uwsgi restart
重新启动
我是 运行 一个使用 NGINX 和 UWSGI 的 Django 应用程序。
我的 URLpatterns 曾经是这样的:
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
无济于事。
正如您在问题中正确提到的那样,您需要在更改代码后reload/restart uWSGI 服务。
如果这不起作用,则服务正在加载缓存数据并且不会重新加载您的更改。要清理缓存数据,请删除所有或相应的 *.pyc
文件并重新启动服务。
在你的情况下删除 urls.pyc
然后用 sudo service uwsgi restart