Предотвратить кеширование web2py?

Я работаю с web2py, и по какой-то причине web2py, кажется, не замечает, когда код изменился в определенных случаях. Я не могу его сузить, но время от времени изменения в коде не отражаются, web2py явно где-то закешировал старую версию.

Единственное, что помогает, это выйти из web2py и перезапустить его (я использую внутренний сервер).

Любые подсказки? Спасибо !


person Joe    schedule 15.05.2010    source источник


Ответы (2)


web2py кэширует ваш код, за исключением Google App Engine (для скорости). Это не проблема. Если вы редактируете код в моделях, представлениях или контроллерах, вы сразу увидите эффект.

Проблема может быть в модулях; если вы редактируете код в модулях, вы не сразу увидите эффект, если только вы не импортируете их с помощью local_import('module', reload=True) или перезапустив web2py.

Это тоже не ваша проблема, значит ваш браузер что-то кеширует. Пожалуйста, задайте этот вопрос в списке рассылки web2py, так как мы можем помочь больше.

P.S. Если вы используете последнюю версию web2py, она больше не поставляется с cherrypy. Встроенный веб-сервер называется Rocket.

person mdipierro    schedule 15.05.2010

web2py сам по себе не должен «кэшировать» ваш код, но любой сервер приложений, на котором вы его используете, наверняка может. Но web2py можно развернуть на таком огромном количестве серверов приложений, что невозможно дать полностью общие рекомендации.

Если вы используете популярный сервер cherrypy WSGI, который, как мне кажется, поставляется в комплекте с web2py, например, см. в собственных документах cherrypy Автоперезагрузка. Такие функции не рекомендуются при развертывании в производственной среде (они могут потребовать очень значительных ресурсов), но они обязательно пригодятся, когда вы только начинаете разработку!-)

person Alex Martelli    schedule 15.05.2010
comment
Хм, я использую сервер cherrypy, который поставляется с web2py. Поскольку он кажется довольно связанным с web2py, я не могу найти правильный файл конфигурации. В любом случае, насколько я понимаю, заставить сервер использовать обновленный файл кажется довольно болезненным. Я имею в виду, что если я запускаю простые скрипты Python на lighttpd без web2py, мне никогда не приходится делать ничего подобного :( - person Joe; 15.05.2010
comment
@Joe, если вы запускаете CGI, то по определению сценарий будет каждый раз заново считываться с диска, и ему нужно будет выполнять всю свою инициализацию снова и снова: это хорошая часть того, что делает CGI таким медленным. Если вы хотите запрограммировать web2py и развернуть как CGI, вперед: web2py поставляется с адаптером CGI, cgihandler.py -- см. все рецепты развертывания на web2py.com/book/default/section/11/0 (ошибочно написано, что modpythonhandler это адаптер для CGI, а cgihandler для modpython, но явно наоборот около;-). - person Alex Martelli; 15.05.2010
comment
@AlexMartelli, ссылка вниз - person Pacerier; 29.05.2019