当龙卷风加载模板时,静态文件路径变为如下:
http://localhost:8888/static/js/jquery-ui.min.js?v=02e1058fd3cb0799867ba932a4ad3b22
我使用这种声明静态文件的方法:
settings = {
'static_path': os.path.join(os.getcwd(), 'static'),
}
application = tornado.web.Application([
(r'/', MainHandler),
(r'/login/', LoginHandler),
(r'/websocket', EchoWebSocket),
(r'/static/', tornado.web.StaticFileHandler, dict(path=settings['static_path'])),
], static_hash_cache=False, debug=True, cookie_secret='salt', **settings)
如何摆脱路径中的'v'变量?
答案 0 :(得分:2)
v
是龙卷风根据文件内容制作的静态文件哈希值。
static_url()函数会将该相对路径转换为类似于/static/images/logo.png?v=aae54的URI。 v参数是logo.png中内容的哈希值,它的存在使得Tornado服务器向用户的浏览器发送缓存头,这将使浏览器无限期地缓存内容。
由于v参数基于文件的内容,如果更新文件并重新启动服务器,它将开始发送新的v值,因此用户的浏览器将自动获取新文件。如果文件的内容没有改变,浏览器将继续使用本地缓存的副本,而无需检查服务器上的更新,从而显着提高了渲染性能。
用于在客户端浏览器中缓存文件的v
。你可以想象这是文件名的一部分。
如果您不想这样做,龙卷风说,您可以使用nginx
服务器。
http://www.tornadoweb.org/en/branch2.3/overview.html#static-files-and-aggressive-file-caching