0

我最近刚开始学习 Python,并使用 Pyramid 作为我的 Web 框架。

我正在尝试在以下位置添加静态视图localhost/images/misc

config.add_static_view('images', 'C:/Project/Images/')
config.add_static_view('images/misc', 'C:/Path/To/Other/Images/')

但我收到一个错误:File does not exist: C:/Project/images/misc

因此,images/misc作为静态视图添加的第二行似乎没有任何效果。

我一直在寻找一种方法来做到这一点,但我没有找到任何东西。是否可以添加名称包含子目录的静态视图?如果是这样,怎么做?

4

1 回答 1

4

在引擎盖下,pyramid 将方法的name一部分add_static_view()转换为形式的 Pyramid 路由谓词name/*subpath(其中name可以包含斜杠本身)。专用静态资产视图附加到该路由谓词。

在您的配置中,这意味着将按顺序images/*subpath同时存在和images/misc/*subpath路由谓词。然后,当您请求带有路径Pyramid的 URL 时,首先找到谓词,并尝试在文件夹中查找路径元素,但失败了。images/misc/foo.pngimages/*subpathmisc'C:/Project/Images/'

幸运的是,您可以颠倒注册的顺序,只需images/misc先注册路径:

config.add_static_view('images/misc', 'C:/Path/To/Other/Images/')
config.add_static_view('images', 'C:/Project/Images/')

现在images/misc/*subpath先注册谓词,并在测试另一个谓词之前匹配任何images/misc/URL。

于 2012-09-14T09:13:40.090 回答