2010-06-04 52 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