【问题标题】:Changes to django's urls.py not reflected online对 django 的 urls.py 的更改未在线反映
【发布时间】:2017-10-13 12:52:19
【问题描述】:

我正在使用 NGINX 和 UWSGI 运行 Django 应用程序。

我的 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无济于事。

【问题讨论】:

  • 删除urls.pyc也许它从缓存中加载它?
  • 您正在尝试一些未在您的 url conf 中定义的随机 url?
  • @MosesKoledoye 我做了,这将提供 404 页面。事实上,在示例中,我尝试导航到 mywebsite/randomurltoget404page
  • @MosesKoledoye 他想访问/collections/,但为了进行测试,他输入了一些内容向您展示,data_collection_projects.urls 甚至没有将collections 显示为选项。
  • @MitchellvanZuylen 删除后你确实重新启动了 uwsgi 吗?

标签: python django nginx uwsgi


【解决方案1】:

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

如果这不起作用,服务将加载缓存数据并且不会重新加载您的更改。要清理缓存数据,请删除所有或对应的*.pyc文件并重新启动服务。

在您的情况下,删除 urls.pyc,然后使用 sudo service uwsgi restart 重新启动

【讨论】:

  • 我从 virtualenv 运行我的 uwsgi。如果我使用sudo service /home/virtualenv/virtualfolder/uwsgi restart,它会不会工作?
  • 如果是gunicorn,同样操作,删除*.pyc文件,重启gunicorn。
猜你喜欢
  • 2014-11-26
  • 2020-12-01
  • 1970-01-01
  • 2023-03-28
  • 2019-05-22
  • 2017-01-02
  • 2016-04-18
  • 2015-04-19
  • 2022-01-21
相关资源
最近更新 更多