我有一個讓CherryPy爲返回的頁面提供必要的css文件的時間。從CherryPy服務css文件
我的目錄結構:
Application
ab.py (CherryPy application)
ab.config (CherryPy config file)
html\ (html template folder)
ab.html (html template file)
css\ (css folder)
ab.css (css file)
在ab.html鏈接聲明:
<link href="/css/ab.css" rel="stylesheet" type="text/css" />
最後,ab.config
[/]
tools.staticdir.root = "/"
[/css/ab.css]
tools.staticfile.on = True
tools.staticfile.filename = "/css/ab.css"
我的模板被加載和渲染到我期望的瀏覽器,但沒有樣式適用。如果我將模板更改爲使用相對地址(../css/ab.css)並將模板作爲瀏覽器中的文件打開,則會應用樣式。
我花了一段時間纔將配置文件轉移到啓動應用程序時CherryPy沒有抱怨壞路徑的地方。在這一點上,它啓動,呈現並返回正常,但似乎並沒有提供給瀏覽器的CSS文件。
任何幫助非常感謝。基於一種建議從fumanchu
更新:
喜歡使用staticdir,和現在的理解是,根指的是文件系統的絕對路徑,我現在有這樣的配置文件:
[/]
tools.staticdir.root = "c:/users/myaccount/documents/clientname/application"
[/css]
tools.staticdir.on = True
tools.staticdir.dir = "css"
在我的HTML我有這個樣式錶鏈接:
<link href="/css/ab.css" rel="stylesheet" type="text/css" />
而且我開始CherryPy的伴t他:
cherrypy.quickstart(ABRoot(), '/', 'ab.config')
在這個配置中,我仍然沒有在我的網頁上得到樣式。當我直接檢查網頁的源文件,然後單擊/css/ab.css鏈接,我得到
NotFound: (404, "The path '/css/ab.css' was not found.")
(注:我正在開發一個Windows機器上)。
而不改變爲相對URL,你可以在頁面上查看源代碼,因爲它是被服務,然後單擊源中的「/css/ab.css」地址? – syrion
我可以,而且我從我的一個CherryPy處理程序接收到一個異常,它表示對/css/ab.css的請求正在接受調度機制,而不是作爲靜態文件提供服務。 –
糟糕,處理程序的結果與相對路徑有關。使用/css/ab.css,我得到「NotFound:(404,」未找到'/css/ab.css'路徑。「)」。 –