Django代码更改未在生产服务器上生效

11 投票
3 回答
7070 浏览
提问于 2025-04-17 15:13

我修改了一个 .py 文件,结果在本地开发服务器上能看到这些改动,但我需要先删除 .pyc 文件。生产服务器上这个特定的文件甚至没有 .pyc 文件。我尝试了更新 apache wsgi 并重启生产服务器上的 apache,但还是没用。即使删除这个 .py 文件,应用程序的表现也没什么变化。服务器上安装了 memcached,但我对它是怎么缓存的了解不多。此外,还有 .git 文件,五台服务器在一起工作——一台是主服务器,四台是负载均衡器。

祝好!

3 个回答

1

如果你使用uwsgi作为网关,记得在uwsgi的设置里加上touch-reload这个参数。

$ touch <your-touch-reload-file>

然后在控制台里运行一下,就能看到更改生效了。

如果你是用apache配合mod_python或mod_wsgi,那就需要重启apache才能让更改生效。

2

你需要重启你的服务器(不管是WSGI、UWSGI还是你在生产环境中使用的其他东西)。

9

你确定你在修改的是正确的服务器吗?我知道这个问题听起来有点傻,但你可以试试先停止Apache服务,然后看看页面还能不能打开。如果还能打开,那你肯定是在搞错服务器了。

如果不能打开,接下来可以尝试重新加载Apache(这和重启是不一样的)。

sudo service apache2 reload

如果这样还是不行,那就把你的Apache设置发出来,可能你在查看的文件夹和你实际上传的文件夹不对。

撰写回答