CherryPy无法显示图像

时间:2012-09-14 08:35:25

标签: python google-chrome windows-7 cherrypy

我现在尝试了大约5个小时来向我的网页显示图像。 我的代码是这样的:

import os
import cherrypy

file_path = os.getcwd().replace("\\", "/")

class Home:
    def index(self):
        return """<img src="img/logolong.jpg" alt="Main Page" />"""
    index.exposed = True

if __name__ == "__main__":
    cherrypy.server.socket_host = "127.0.0.1"
    cherrypy.server.socket_port = 50505
    config = {"/static":
                        {"tools.staticdir.on": True,
                         "tools.staticdir.dir": file_path,
                        },
                      "/images":
                        {"tools.staticdir.on": True,
                        "tools.staticdir.dir": file_path+"/img"}
                    }

    cherrypy.tree.mount(Home(), "/", config=config)
    cherrypy.engine.start()
    cherrypy.engine.block()

我到处搜索,尝试过一切。我正在使用谷歌浏览器和Windows7。

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您的代码在URI /static/images/img/logolong.jpg公开了logolong.jpg,但您的HTML表示它应该位于/img/logolong.jpg。你需要调和那些方式。要保持HTML原样并修复配置,您应该将其更改为:

config = {
    "/img": {
        "tools.staticdir.on": True,
        "tools.staticdir.dir": os.path.join(file_path, "img"),
    }
}

(以这种方式使用os.path.join意味着你可以摆脱上面的replace("\\", "/")

这将在 URI %cd%\\img\\logolong.jpg上提供文件 /img/logolong.jpg

答案 1 :(得分:0)

尝试更改此行......

return """<img src="img/logolong.jpg" alt="Main Page" />"""\

到这一行......

return """<img src="/logolong.jpg" alt="Main Page" />"""

安德鲁