CherryPyによる静的ファイルの処理に苦労しています。問題は、URLの末尾のスラッシュの処理に関係しています。欠落しているスラッシュが追加される場合と追加されない場合があります。動作は予測できません。そこにはバグが潜んでいると私は確信しています。静的ファイルを追加または削除すると、バグが発生するようです。スラッシュを処理する関数に未確定の状態を作成する初期化されていない変数が存在する可能性があるようです。問題を示す最小限のアプリケーションをまとめました(少なくとも私のマシンでは)。Ubuntu12.10でCherryPy3.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を読みましたが、これは同様の問題がありますが、ルートを使用しています。ルートは使用しません。