Pyramid 中的 add_static_view(name, path) 如何工作?
从文档字符串:
"The name
参数是一个表示应用程序相关的字符串
本地 URL 前缀。它也可以是完整的 URL。
这path
参数是静态文件在磁盘上的路径
居住。这可以是绝对路径、包相对路径、
或资产规格。”
不知怎的,我的印象是这个描述不是
非常精准。
如果我添加一些代码
config.add_static_view("static", "/path/to/resource/on/filesystem")
我访问
http://localhost:PORT/static/logo.png
我看到给出的 logo.png
它可以在
/path/to/resource/on/filesystem/
现在,如果我有如下代码
config.add_static_view("http://myfilehoster.com/images", "myproject:images")
的描述“path
参数是磁盘上的路径,其中
静态文件驻留”似乎不再准确,因为实际
文件驻留在 myfilehoster 的磁盘上。
在我看来,我只是注册某种标识符
(myproject:images) 我可以在我的程序代码中使用它来引用
“真实”位置“http://myfilehoster.com/images”。
例如。
request.static_url("myproject:images/logo.png")
将会得到解决
到“http://myfilehoster.com/images/logo.png”。
那么这里的文档是否不准确或者我遗漏了什么?
你缺少一些东西。在里面静态资产的叙述性文档 http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/assets.html#serving-static-assets它指出:
代替表示 URL 前缀,name
调用的参数add_static_view()
也可以是URL。到目前为止我们看到的每个例子都展示了name
参数作为 URL 前缀。然而,当name
is a URL,静态资源可以从外部网络服务器提供。在此模式下,name
生成 URL 时用作 URL 前缀pyramid.request.Request.static_url()
.
In the API文档 http://docs.pylonsproject.org/projects/pyramid/en/latest/api/config.html#pyramid.config.Configurator.add_static_view使用类似的措辞:
When add_static_view
被称为name
表示 URL 前缀的参数,如上面所示,后续调用pyramid.request.Request.static_url()
以以下开头的路径path
参数传递给add_static_view
会生成一个类似的 URLhttp://<Pyramid app URL>/images/logo.png
,这将导致logo.png
文件位于images子目录中mypackage
待送达的包裹。
使用 URL 切换行为add_static_view
总共和path
参数仅被解释为符号路径.static_url()
方法。后一个细节可能没有在文档中明确描述,您可以在金字塔问题跟踪器 https://github.com/Pylons/pyramid/issues如果你对此有强烈的感觉。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)