我最近刚开始学习Python,并且正在使用Pyramid作为我的网络框架。
我尝试在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
添加为静态视图的第二行似乎没有任何效果。
我一直在寻找一种方法来做到这一点,但我还没找到任何东西。是否可以添加名称包含子目录的静态视图?如果是这样,怎么样?
答案 0 :(得分:4)
在幕后,金字塔将name
方法的add_static_view()
部分转换为name/*subpath
形式的金字塔路线谓词(其中name
可以包含斜杠本身)。专用静态资产视图附加到该路由谓词。
在您的配置中,这意味着会有images/*subpath
和images/misc/*subpath
路由谓词,按此顺序。然后,当您请求包含路径images/misc/foo.png
的网址时,金字塔会首先找到images/*subpath
谓词 ,并尝试在{{1}中查找misc
路径元素文件夹,失败。
幸运的是,您可以撤消注册的顺序,只需先注册'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
个网址。