2012-03-12 51 views
0

早上,所有的 - 我有一个问题,我没有跟我以前部署的应用程序的Django遇到。我有一个工作应用程序,只使用管理应用程序和自定义管理命令进行自动电子邮件提醒。Django的部署应用程序显示“成功了!”,而不是应用程序(Gunicorn + Nginx的)

这个程序工作得很好我的开发机上,用工作的管理界面和工作自定义管理命令。我将整个项目目录从开发机器复制到服务器,而我所得到的只是通用的“它的工作!”我期望从一个全新的项目中获得的页面。

我觉得这是很奇怪的,因为该项目从工作安装逐字复制与确切的路径名的位置。任何人有想法?

编辑:正如下面的评论指出,我发现这个问题是我已经与我的项目代码一起复制了编译pyc文件。我对Python不够了解,无法理解为什么.pyc文件不可移植。在复制项目之前删除所有.pyc文件,然后运行syncdb解决了该问题。

+0

此外,我已清除浏览器缓存无济于事。 – patrickn 2012-03-12 16:31:59

+0

是否复制了urls.py文件?受欢迎的原因通常是没有定义的URL。 – Kekoa 2012-03-12 16:49:34

+0

感谢这篇文章,Kekoa - 注意到我对以下答案的评论:原来我的另一台机器上的.pyc文件有干扰。 – patrickn 2012-03-12 17:05:21

回答

1

确保您具有^$模式的URL映射(这基本上是一个空的URL)。这是在您输入没有路径组件的URL时加载的内容。

example.com = ^$

example.com/ = ^/$,虽然APPEND_SLASH设置(默认情况下其上),也有助于此。

如果关闭DEBUG - 你应该在生产做 - 你将不再看到该页面。使您必须为相应的错误条件提供404.html500.html模板。

+0

感谢帖子,burhan。我会回答我自己的问题,但我还没有足够的代表。这个问题是我和我的项目一起复制的.pyc文件。他们不知何故干扰。 – patrickn 2012-03-12 17:00:52

+0

另外,让我失望的事情之一是设置DEBUG = False仍然显示“它工作了!”页。原来,gunicorn正在为已编译的python文件提供服务(因为它应该这样做,为了速度),而不是运行实际的.py文件。 ./manage.py由于.pyc文件已经存在,syncdb也没有做任何事情。因此,故事的寓意 - 如果从开发中将项目复制到生产服务器,则删除.pyc文件! :) – patrickn 2012-03-12 17:03:29

+0

标记你的答案是好的,因为它可以帮助没有.pyc文件问题的人。 – patrickn 2012-03-12 17:04:11