Cherrypy是一个很不错的python webserver,不过好东西也会让人抓狂的。
Cherrypy的配置可以放在一个配置文件中,然后在启动的时候提供出文件名就可以。
cherrypy.quickstart(handler, config=’/path/to/conf_file’)
我需要用到的一个功能就是要增加一个静态内容的支持,也就是当用户访问http://localhost/static的时候指向的是我的一个存放静态内容(js,css等)的目录。这个可以使用配置文件的tools.staticfile和tools.staticdir参数设置(相见Cherrypy的StaticContent章节)。但是你写在配置文件中的都需要是一个绝对路径,而我的程序是不一定安装到哪里的,所以只能后期配置。
此时的配置信息是分两部分的,一部分是通用的,一部分是静态内容,需要根据当前所在目录组合起来的。
正确的写法是
cherrypy.config.update(global_config)
然后是cherrypy的quickstart里面的config是static的配置
cherrypy.quickstart(handler, config=static_conf)
首先是把全局的配置设置在cherrypy的config中,然后在quickstart里面给出静态内容的配置。
我走了一个弯路,无法正确的使用静态内容
- 把所有的内容都放在一个配置信息中,使用cherrypy.config.update,在quickstart的时候不给config参数
就原因来说,我查看了一下cherrypy的源代码,他会在quickstart的时候,把config参数应用在tree的mount上,而static content的配置在此时才会起作用的。所以这样做是不行的。
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.