Disable static file caching in Tornado

Question:

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?

Asked By: Jordan

||

Answers:

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")
Answered By: sigman

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')
Answered By: 0xdabbad00