2012-09-14 220 views
1

我嘗試了大約5個小時,現在將圖像顯示在我的網頁上。 我的代碼是這樣的:CherryPy無法顯示圖像

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() 

我到處搜尋,並試圖像一切。我使用Google Chrome和Windows7。

非常感謝您的幫助!

+0

這是一個問題,你應該問CherryPy的作者。 – Arran

+1

當您嘗試直接訪問圖像時會發生什麼? 404是否? – Blender

+0

您是不是在尋找'/ img/img/logolong.jpg'中的圖片?配置設置看起來像設置圖像的位置,所以當你在索引中引用它時,你不需要'img /'。 –

回答

0

嘗試改變這一行...

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

這條線......

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

安德魯

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("\\", "/"))的

這將服務於文件%cd%\\img\\logolong.jpgURI/img/logolong.jpg