2012-03-12 49 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