【问题标题】:Tornado adds query string to static files pathTornado 将查询字符串添加到静态文件路径
【发布时间】:2014-04-11 04:41:10
【问题描述】:

tornado 加载模板时,静态文件路径变成这样:

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”变量?

【问题讨论】:

    标签: python tornado


    【解决方案1】:

    v是tornado根据文件内容生成的静态文件hash。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多