जब मैं 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()
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"
मुझे एक समाधान मिला जो काम करता है, लेकिन मुझे यह ज्यादा पसंद नहीं है। इसके लिए 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"
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।