2012-09-14 4 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() 

. Chrome과 Windows7을 사용하고 있습니다.

도움을 주셔서 감사합니다.

+0

이것은 CherryPy의 저자에게 질문해야하는 질문입니다. – Arran

+1

이미지에 직접 액세스하려고하면 어떻게됩니까? 그것은 404입니까? – Blender

+0

'/ img/img/logolong.jpg'에서 이미지를 찾지 않습니까? 구성 설정은 이미지 위치를 설정하는 것처럼 보이므로 인덱스에서 참조 할 때'img /'가 필요하지 않습니다. –

답변

0

1

귀하의 코드는 URI /static/images/img/logolong.jpg에서 logolong.jpg를 노출

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

에게 ...이 라인에

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

...이 줄을 변경 앤드류를 시도하지만 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입니다.

관련 문제