Cherrypy не может найти варианты при использовании apache? - PullRequest
0 голосов
/ 08 февраля 2011

У меня была странная проблема с вишневым. Когда я быстро запускаю приложение:

cherrypy.quickstart(WebApps(), '/dev/apps/', 'settings.config')

Все отлично работает. Однако, когда я пытаюсь загрузить свое приложение через apache mod_wsgi, кажется, что ни один из параметров по умолчанию из файла параметров не передается инструменту, который я создал.

У меня есть простой инструмент:

@cherrypy.expose
@cherrypy.tools.checkStatus()
def doSomething(self,*args, **kwargs):
   #process the page here
   ...

def checkStatus(**kwargs): 
    #handle stuff here

и очень простой файл settings.config:

[global]
tools.checkStatus.redirect = 'http://localhost/dev/MyRedirectPage.html'
tools.checkStatus.returnAfterRedirect = True

Как указано выше, когда я запускаю из функции быстрого запуска, checkstatus передается словарь параметров, содержащий 'redirect' и 'returnAfterRedirect'.

Когда приложение запускается из mod_wsgi, код запускается, но параметры не передаются в kwargs.

def application(environ, start_response):
    app = cherrypy.tree.mount(WebApps(),
                              '/dev/apps/', 
                              os.path.join(currentPath,'settings.config'))

return app(environ, start_response)

Я что-то упускаю здесь очевидное? Почему работает первая версия, а не вторая?

Спасибо

1 Ответ

0 голосов
/ 09 февраля 2011

Я бы начал с проверки того, что os.path.join(currentPath,'settings.config') - это то, что, как вы думаете, должно быть ...

Но при условии, что это так, попробуйте переместить записи конфигурации с [global] на [/]. quickstart передаст одну и ту же конфигурацию cherrypy.config.update (глобальная конфигурация) и app.config (конфигурация для конкретного приложения), но tree.mount только последняя.

...