我在 CherryPy 处理静态文件时遇到了困难。问题与处理 URL 的尾部斜杠有关。有时会添加缺少的斜线,有时则不会:行为是不可预测的。我确信那里潜伏着一个错误。当我添加或删除一些静态文件时,该错误似乎出现了。看起来可能有一个未初始化的变量在处理斜杠的函数中创建了一个未确定的状态。我已经整理了一个显示问题的最小应用程序(至少在我的机器中)。我在 Ubuntu 12.10 下使用 CherryPy 3.2.2。
import cherrypy
class Root(object): pass
conf = {
'/':{
'tools.staticdir.on': True,
'tools.staticdir.dir': '/home/bob/www',
'tools.staticdir.index': 'index.htm',
'tools.staticdir.debug': True,
},
}
cherrypy.tree.mount(Root(), '/', config=conf)
cherrypy.engine.start()
cherrypy.engine.block()
我的实验性静态文件夹(/home/bob/www)的结构非常简单:
/home/bob/www/index.htm <-- This file is just <html><body>Hello</body></html>
/home/bob/www/dir/index.htm <-- This files includes a <img src="picture.jpg"> tag in it
/home/bob/www/dir/picture.jpg <-- Any picture will do
如果我浏览localhost:8080/dir/,结果页面会显示图像。
如果我浏览localhost:8080/dir,结果页面不会显示图像。
任何帮助,将不胜感激。也许我没有正确配置应用程序,因为我是 CherryPy 的新手。
谢谢,
鲍勃
PS我已经阅读了stackoverflow.com/questions/10276060,它有类似的问题,但使用了Routes。我不使用路由。