2010-05-15 210 views
5

我正在使用web2py,由於某些原因,web2py在某些情況下代碼更改時似乎未能注意到。我無法真正縮小它的範圍,但不時反映代碼中的變化,web2py顯然已將舊版本緩存在某處。防止web2py緩存?

唯一有幫助的是退出web2py並重新啓動它(我正在使用內部服務器)。

任何提示?謝謝 !

回答

0

web2py本身不應該「緩存」你的代碼,但無論應用服務器你在使用它肯定會。但是web2py可以部署在如此龐大的各種應用服務器上,因此無法給出完整的一般性建議。

如果你使用,我相信自帶web2py捆綁在一起,例如流行cherrypy WSGI服務器,看,CherryPy的自己的文檔,該AutoReload功能。在在生產部署建議這樣的特徵(他們可以要求非常顯著資源),但他們肯定派上用場,當你只是發展 - !)

+0

嗯嗯,我使用自帶的web2py的CherryPy的服務器。由於它似乎與web2py相當相似,我似乎無法找到正確的配置文件。無論如何 - 從我的理解,這似乎很痛苦,只是爲了使服務器使用最新的文件。我的意思是,如果我運行的web2py沒有一個lighttpd的純Python腳本我從來沒有做類似的東西:( – Joe 2010-05-15 14:57:12

+0

@Joe,如果您運行CGI然後通過定義腳本將被重新從磁盤每次讀取和需要做的所有的其初始化一遍:這是什麼使CGI這麼慢的很大一部分。如果你想編寫的web2py和部署爲CGI,請便。web2py的配備了CGI適配器,'cgihandler.py' - 看到所有的部署在http://web2py.com/book/default/section/11/0食譜(它錯誤地說,modpythonhandler是CGI和cgihandler爲modpython適配器,但它顯然周圍的其他方式;-)。 – 2010-05-15 15:16:27

5

的web2py不會緩存你的代碼,除了谷歌應用程序引擎(爲了速度)。這不是問題。如果您在模型,視圖或控制器中編輯代碼,您會立即看到效果。

問題可能是模塊;如果您編輯模塊中的代碼,您將不會立即看到效果,除非您使用local_import('module', reload=True)或通過重新啓動web2py導入它們。

是同樣不是你的問題,那麼您的瀏覽器緩存的東西。請把這個問題提交到web2py郵件列表,我們可以提供更多幫助。

P.S.如果您使用的是最新版本的web2py,則不再提供cherrypy。內置的Web服務器被稱爲Rocket。

+0

謝謝您答案,loca_import做了訣竅:) – Joe 2010-05-16 10:00:45