上一篇文章: Python:Tornado 第四章:Tornado網站部署:第一節:調試模式
下一篇文章: Python:Tornado 第四章:Tornado網站部署:第三節:運營期配置
靜態文件下載是大多數網站必備的功能,與靜態文件相關的開發工做有兩類:配置靜態文件路徑和優化靜態文件訪問。css
配置靜態文件路徑的目的在於爲客戶端提供靜態文件的可訪問性。Tornado提供了兩種方式進行配置靜態文件URL路徑與服務器本地路徑的關聯關係。html
在tornado.web.Application的構造函數中能夠傳入static_path參數,用於配置對URL路徑http://mysite.com/static中文件的本地路徑,好比:web
import tornado def make_app(): return tornado.web.Application([ #此處寫入映射 ], static_path="C:\\www\\static" )
這將使諸如http://mysite.com/static/favorite.png、http://mysite.com/static/css/main.cs這的文件的訪問映射到C:wwwstatic中。segmentfault
一般這些靜態文件的目錄與網站的代碼文件有某種相對關聯關係,能夠經過下面這樣的方法將該參數設置爲相對路徑:瀏覽器
import os import tornado def make_app(): return tornado.web.Application([ #此處寫入映射 ], static_path=os.path.join(os.path.dirname(__file__),'static') )
即指定靜態目錄爲本程序文件所在目錄的static子目錄。緩存
若是除了http://mysite.com/static目錄還有其餘存放靜態文件的URL,則能夠用RequestHandler的子類StaticFileHandler進行配置,好比:服務器
def make_app(): return tornado.web.Application([ #此處寫入映射 #這裏配置了3個StaticFileHandler (r'/css/(.*)',tornado.web.StaticFileHandler,{'path':'assets/css'}), (r'/images/png/(.*)',tornado.web.StaticFileHandler,{'path':'assets/image'}), (r'/js/(.*)',tornado.web.StaticFileHandler,{'path':'assets/js','default_filename':'templates/index.html'}), ], static_path=os.path.join(os.path.dirname(__file__),'static') )
本例中除了static_path,還用StaticFileHandler配置了另外3個靜態文件目錄。網絡
優化靜態文件訪問的目的在於減小靜態文件的重複傳送,提升網絡及服務器的利用效率,經過在模板文件中用static_url方法修飾靜態文件連接能夠達到這個目的:app
<html> <head> </head> <body> <div><img src="{{static_url('images/logo.png')}}"/><div> </body> </html>
本例中的靜態圖像連接將被設置爲相似/static/images/logo.png?v=5ad4e的形式,其中的v=5ad4e是logo.png文件內容的哈希值,當Tornado靜態文件處理器發現該參數時,將通知瀏覽器該文件能夠無限期緩存,所以避免了以後訪問該文件時的反覆傳輸。函數