如何使cherrypy服务像Apache这样的相对URL

时间:2012-06-05 14:34:24

标签: config cherrypy relative-url

(这是在Windows文件系统上)

假设我有以下htdocs dir结构:

c:\abc\htdocs
   index.html
   picture.jpg
   \js
      somescript.js

我的index.html看起来像这样:

<html>
   <head>
      <title>Apache vs Cherrypy Test</title>
      <script type="text/javascript" src="/js/somescript.js"></script>
   </head>
   <body>
      <img src='/picture.jpg' />
   </body>
</html>

使用Apache的,我只是点我的httpd.conf的DocumentRoot到c:\ ABC \ htdocs目录和我的index.html可以没有特殊CONFIGS访问/picture.jpg和/js/somescript.js
。 换句话说,我的HTML可以引用没有自定义服务器配置的相对URL。

现在切换到樱桃树 我能够为我的index.html提供服务,但是在.jpg和.js文件上获得404 是否有某种方式导致的CherryPy简单地满足了的所有的htdocs目录相对请求的文件(如/picture.jpg和/或/js/somescript.js),而无需为每个文件创建明确的配置项和/或htdocs subdir?

我原本希望能够像这样创建一个简单的配置:

[/]
tools.staticfile.root = "c:\abc\htdocs"

然后,这将允许访问/picture.jpg和/js/somescript.js,但工作。
是否有一种简单的方法来指示cherrypy提供“通配符”相对URL,而不需要在配置中提供特定于文件的条目?

1 个答案:

答案 0 :(得分:0)

staticfile一次用于单个文件。请尝试使用staticdir。有关可以采用的配置参数,请参阅http://docs.cherrypy.org/dev/refman/lib/static.html#cherrypy.lib.static.staticdir。我强烈建议您在浏览时设置“tools.staticdir.debug = True”。有关使用它的一些散文,另请参阅http://docs.cherrypy.org/dev/progguide/files/static.html#serving-files-through-the-staticdir-tool