28

By default, Tornado puts a Cache-Control: public header on any file served by a StaticFileHandler. How can this be changed to Cache-Control: no-cache?

alecxe
  • 462,703
  • 120
  • 1,088
  • 1,195
Jordan
  • 4,510
  • 7
  • 34
  • 42

2 Answers2

48

The accepted answer does not work for Chrome. Subclass StaticFileHandler using the following:

class MyStaticFileHandler(tornado.web.StaticFileHandler):
    def set_extra_headers(self, path):
        # Disable cache
        self.set_header('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0')
0xdabbad00
  • 998
  • 2
  • 11
  • 22
17

Looking into the tornado/web.py it seems that the easiest way is to subclass the StaticFileHandler and override the set_extra_headers method.

def set_extra_headers(self, path):
    self.set_header("Cache-control", "no-cache")
sigman
  • 1,291
  • 12
  • 13