जब मैं favicon.ico पर ब्राउज़ करने का प्रयास करता हूं, उदाहरण के लिए, मुझे यह त्रुटि मिलती है:

ValueError: Static tool requires an absolute filename (got 'favicon.ico')

मैं अपने/छवियों,/सीएसएस और/जेएस फ़ोल्डरों में कुछ भी प्राप्त कर सकता हूं। जो ठीक सेवा कर रहे हैं। साइट शानदार दिखती है और काम करती है। यह सिर्फ ये रफ़ू दो फ़ाइलें हैं।

यहाँ मेरी root.conf फ़ाइल है।

[/]
tools.staticdir.on = True
tools.staticdir.root = "/projects/mysite/root"
tools.staticdir.dir = ""

[/favicon.ico]
tools.staticfile.on = True
tools.staticfile.filename = "favicon.ico"
tools.staticdir.on = True
tools.staticdir.dir = "images"

[/robots.txt]
tools.staticfile.on = True
tools.staticfile.filename = "robots.txt"
tools.staticdir.on = True
tools.staticdir.dir = ""

[/images]
tools.staticdir.on = True
tools.staticdir.dir = "images"

[/css]
tools.staticdir.on = True
tools.staticdir.dir = "css"

[/js]
tools.staticdir.on = True
tools.staticdir.dir = "js"

यहाँ मेरी Cherrypy.conf फ़ाइल है:

[global]
server.socket_port = 8888
server.thread_pool = 10
tools.sessions.on = True

यहाँ मेरी "startweb.py" स्क्रिप्ट है:

import cherrypy
from root.roothandler import Root

cherrypy.config.update("cherrypy.conf")

cherrypy.tree.mount(Root(), "/", "root/root.conf")

if hasattr(cherrypy.engine, 'block'):
    # 3.1 syntax
    cherrypy.engine.start()
    cherrypy.engine.block()
else:
    # 3.0 syntax
    cherrypy.server.quickstart()
    cherrypy.engine.start()
4
010110110101 5 सितंबर 2011, 16:34

2 जवाब

सबसे बढ़िया उत्तर

जब आप किसी विशेष URL के लिए CherryPy टूल चालू करते हैं, तो यह उसके नीचे के सभी "बच्चे" URL के लिए भी चालू हो जाता है। तो [/images], [/css], और [/js] आपके कॉन्फिग के हिस्से बेमानी लगते हैं। तो, [/robots.txt] अनुभाग भी है।

[/favicon.ico] भी बेमानी होगा, favicon.ico को छोड़कर विशेष है क्योंकि चेरीपी आपके लिए एक सेट करता है, आमतौर पर (आपके रूट ऑब्जेक्ट की विशेषता के रूप में; देखें _cptree.py)। तो इसे ओवरराइड करना उचित है:

[/]
tools.staticdir.on = True
tools.staticdir.root = "/projects/mysite/trunk/root"
tools.staticdir.dir = ""
tools.staticfile.root = "/projects/mysite/trunk/root"

[/favicon.ico]
tools.staticfile.on = True
tools.staticfile.filename = "images/favicon.ico"
5
fumanchu 6 सितंबर 2011, 19:23

मुझे एक समाधान मिला जो काम करता है, लेकिन मुझे यह ज्यादा पसंद नहीं है। इसके लिए 3 स्थानों पर पूर्ण, पूर्ण पथ डालने की आवश्यकता है।

यहाँ नया रूट है.conf

[/]
tools.staticdir.on = True
tools.staticdir.root = "/projects/mysite/trunk/root"
tools.staticdir.dir = ""

[/favicon.ico]
tools.staticfile.on = True
tools.staticfile.filename = "/projects/mysite/trunk/root/images/favicon.ico"

[/robots.txt]
tools.staticfile.on = True
tools.staticfile.filename = "/projects/mysite/trunk/root/robots.txt"

[/images]
tools.staticdir.on = True
tools.staticdir.dir = "images"

[/css]
tools.staticdir.on = True
tools.staticdir.dir = "css"

[/js]
tools.staticdir.on = True
tools.staticdir.dir = "js"
0
010110110101 5 सितंबर 2011, 19:29