]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Add a way of customizing cache control behavior for static files.
authorKrzysztof Tarnowski <krzysztof.tarnowski@ymail.com>
Fri, 8 Jul 2011 11:40:11 +0000 (13:40 +0200)
committerKrzysztof Tarnowski <krzysztof.tarnowski@ymail.com>
Fri, 8 Jul 2011 11:40:11 +0000 (13:40 +0200)
tornado/web.py

index c5b0ed79d7760e2c072c28f5bb9e8afc2250a9cd..77482a780bbc0f4fdee6ccd7f1980231a830508d 100644 (file)
@@ -1463,12 +1463,14 @@ class StaticFileHandler(RequestHandler):
         modified = datetime.datetime.fromtimestamp(stat_result[stat.ST_MTIME])
 
         self.set_header("Last-Modified", modified)
-        if "v" in self.request.arguments:
+
+        if self.enable_aggressive_caching(path):
             self.set_header("Expires", datetime.datetime.utcnow() + \
                                        datetime.timedelta(days=365*10))
             self.set_header("Cache-Control", "max-age=" + str(86400*365*10))
         else:
             self.set_header("Cache-Control", "public")
+
         mime_type, encoding = mimetypes.guess_type(abspath)
         if mime_type:
             self.set_header("Content-Type", mime_type)
@@ -1497,6 +1499,10 @@ class StaticFileHandler(RequestHandler):
         """For subclass to add extra headers to the response"""
         pass
 
+    def enable_aggressive_caching(self, path):
+        """Override to customize cache control behavior."""
+        return "v" in self.request.arguments
+
 
 class FallbackHandler(RequestHandler):
     """A RequestHandler that wraps another HTTP server callback.