2010-06-04 53 views
0

以下是我最近發佈的CherryPy和css路徑問題的結果,兩者都已得到解答,但出現了另一個問題。我有一個HTML頁面,我在瀏覽器(通過。編輯器/ IDE)預覽,並從一個css文件夾與我的應用程序文件夾(包含main.py和My.html文件)並行調用一個css文件。爲此,我在html標頭中使用相對路徑...用於CSS文件訪問的CherryPy配置

<link rel="stylesheet" href="..\css\commoncss.css" type="text/css"> 

目前爲止都很好。然而,當我運行Main.py,CSS文件不能被發現,頁面看起來一團糟:-(的CP配置文件包括以下行...

tools.staticdir.root = "my\app\folder" # contains Main.py and My.html 

,但沒有其他staticdir聲明,因爲CP應該是尋找.. \ css \ commoncss.css相對於靜態根文件夾(我是吧?)

我可以有我的CSS文件夾作爲頂級文件夾(然後我可以使用href =「/ css/commoncss「和declare/css作爲staticdir),但這很醜陋。或者,CSS文件夾可能是應用程序文件夾的子文件夾,但我真的需要自由將.css文件放在不同的位置如果可能的話,路徑(可能對多個應用程序通用)。

我真的很想破解這個問題,因爲否則就意味着html設計者不能在不改變href指令的情況下使用與Python程序員相同的模板。

任何幫助,將不勝感激。

艾倫

回答

1

,但沒有其他staticdir聲明 因爲CP應該尋找 .. \ CSS \ commoncss.css相對 靜態根文件夾(是嗎?)

您無法通過URL訪問您的物理文件目錄(靜態目錄),也不應該。

Cherrypy正在尋找相對於您的HTML文件的URL層次結構中的css文件。如果您的HTML文件位於根目錄下,那麼這將不起作用。如果它在,比如說:/stuff/blarg.html,那麼它會下降到根目錄並尋找css文件夾。

我覺得它更容易只是給出一個絕對路徑,因爲它是合理的規定,CSS目錄是在已知位置:「/css/commoncss.css

+0

感謝瑞恩 - 看起來像我將不得不放棄的便利直接在瀏覽器中預覽html。儘管如此,付出的代價卻很小。問候。 – 2010-06-04 11:48:34