Cherrypy在使用apache时找不到选项?

时间:2011-02-08 18:29:53

标签: cherrypy

我一直遇到一个奇怪的问题。当我快速启动应用程序时:

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 :(得分:0)

我首先要确认os.path.join(currentPath,'settings.config')是您认为的应该是......

但假设是,请尝试将配置条目从[global]移至[/]quickstart会将相同的配置传递给cherrypy.config.update(全局配置)和app.config(特定于应用程序的配置),但tree.mount仅执行后者。