tornado靜態檔案和快取檔案

2021-07-05 14:51:30 字數 1183 閱讀 2821

靜態檔案是我們在web中經常見到的,如檔案、css檔案、js檔案等等,在tornado如何處理呢?

在tornado中,處理靜態檔案的類staticfilehandler,在web.py模組中,該類不僅處理靜態檔案的對映也處理了靜態檔案的主動式快取。

處理靜態檔案時需要設定settings中關於靜態檔案的值」static_path「,指明靜態檔案的路徑。

settings =

上述指定了靜態檔案的位置在當前目錄中的"static"目錄下,os.path.join(os.path.dirname(file), "static"),注意後面的"static"不能為"/static",或則就不是當前目錄下的」static「目錄中,具體原因請參照os的api。

此時,web可以訪問在」static「中的靜態資源,所有的都會原樣顯示,比如說template檔案,是什麼就是什麼,不會進行額外的處理。

(r"/", mainhandler),

(r"/login", loginhandler),

], **settings)

必須要用()括起來,作為請求的乙個引數。

高效能對於web至關重要,不管從前端到後端都是我們經常需要注意的。

快取檔案是乙個不錯的選擇,這樣瀏覽器就不需要傳送 不必要的 if-modified-since 和 etag 請求,從而影響頁面的渲染速度。 tornado 可以通過內建的「靜態內容分版(static content versioning)」來直接支援這種功能。

要使用這個功能,在模板中就不要直接使用靜態檔案的 url 位址了,你需要在 html 中使用 static_url() 這個方法來提供 url 位址(不使用該函式得到的結果同樣。):

src="}

"/>

由於 v 的值是基於檔案的內容計算出來的,如果你更新了檔案,或者重啟了伺服器 ,那麼就會得到乙個新的 v 值,這樣瀏覽器就會請求伺服器以獲取新的檔案內容。 如果檔案的內容沒有改變,瀏覽器就會一直使用本地快取的檔案,這樣可以顯著提高頁 面的渲染速度。

在生產環境下,你可能會使用nginx這樣的更有利於靜態檔案 伺服的伺服器,你可以將 tornado 的檔案快取指定到任何靜態檔案伺服器上面,下面 是 friendfeed 使用的 nginx 的相關配置:

location /static/ 

}

Nginx設定靜態頁面壓縮和快取過期時間的方法

使用nginx伺服器的朋友可能都知道需要設定html靜態頁面快取與頁面壓縮與過期時間的設定了,下面我來給各位同學介紹一下配置方法,包括對ico,gif,bmp,jpg,jpeg,swf,js,css,檔案進行本地快取.可以通過nginx對伺服器上的靜態資源進行過期時間設定和對資源進行壓縮傳輸來減少伺...

nginx 靜態檔案快取

目的 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。實現 nginx proxy cache可以將使用者的請快取到本地乙個目錄,當下乙個請求時可以直接調取快取檔案,就不用去後端伺服器去取檔...

nginx 靜態檔案快取

目的 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。實現 nginx proxy cache可以將使用者的請快取到本地乙個目錄,當下乙個請求時可以直接調取快取檔案,就不用去後端伺服器去取檔...