[英]How does Pyramid's add_static_view work?
金字塔中的add_static_view(名稱,路徑)如何工作?
從文檔字符串:
“
name
參數是一個表示應用程序相關本地URL前綴的字符串。它可以是一個完整的URLpath
參數是靜態文件所在磁盤上的路徑。這可以是絕對路徑,包相對路徑,或資產規范。“
不知怎的,我得到的印象是這種描述不是很准確。
如果我添加一些代碼
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”。
那么文檔在這里是不准確的還是我遺漏了什么?
add_static_view()
調用的name
參數可以替代為URL ,而不是表示URL前綴。 到目前為止我們看到的每個示例都顯示了name
參數作為URL前綴的用法。 但是,當name
是URL時 ,可以從外部Web服務器提供靜態資產。 在此模式下,使用pyramid.request.Request.static_url()
生成URL時,name
將用作URL前綴。
在API文檔中使用了類似的措辭:
當
add_static_view
是帶一個name
代表一個URL前綴,因為它的正上方,后續調用參數pyramid.request.Request.static_url()
用同啟動路徑path
傳遞到參數add_static_view
會生成一個URL類似於http://<Pyramid app URL>/images/logo.png
,這將導致mypackage
包的images子目錄中的logo.png
文件被提供。
使用URL完全切換add_static_view
的行為,並且path
參數僅被解釋為.static_url()
方法的符號路徑。 后一個細節可能沒有在文檔中明確描述,如果您對此有強烈的感覺,可以在金字塔問題跟蹤器中提出問題 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.