簡體   English   中英

Pyramid的add_static_view如何運作?

[英]How does Pyramid's add_static_view work?

金字塔中的add_static_view(名稱,路徑)如何工作?

從文檔字符串:

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”。

那么文檔在這里是不准確的還是我遺漏了什么?

你錯過了什么。 關於靜態資產敘述文檔中,它指出:

add_static_view()調用的name參數可以替代為URL ,而不是表示URL前綴。 到目前為止我們看到的每個示例都顯示了name參數作為URL前綴的用法。 但是,當nameURL時 ,可以從外部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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM