1

(这是在 Windows 文件系统上)

假设我有以下 htdocs 目录结构:

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 可以访问 /picture.jpg 和 /js/somescript.js 而无需特殊配置。
换句话说,我的 HTML 可以在没有自定义服务器配置的情况下引用相对 URL。

现在切换到樱桃地。
我能够让cherrypy为我的index.html提供服务,但在.jpg和.js文件上获得404
有什么方法可以让cherrypy简单地提供任何与htdocs相关的请求文件(例如/picture.jpg和/或 /js/somescript.js)而不需要为每个文件和/或 htdocs 子目录创建显式配置条目?

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

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

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

4

1 回答 1

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

于 2012-06-05T18:52:52.770 回答