This section provides an overview of caching in the EPiServer platform.There are many different possibilities to control and configure caching. The EPiServer CMS SDK provides more information on caching for areas such as page data, output, VPP and Dynamic Data Store (DDS).
For the EPiServer platform, it is possible to configure which cache information is added to the response headers at request of static files. This can be used so files can be cached by the client and not served by the web server at each request meaning the total request time for a client can be reduced significantly.
Configuring Static Files Caching
The setting in web.config that controls the cache header directives “Expires” and “Cache-Control” is the configuration section staticFile that is allowed to be set on location level. This means it is possible to set different expiration times depending on the path to the static file.
Sample where an Expires time is set globally for the site and where that expiration time is overridden in a sub path.
<configuration> ... <staticFile expirationTime="12:0:0" /> ... <location path="Documents"> <system.webServer> <handlers> <add name="wildcard" path="*" verb="*" type="EPiServer.Web.StaticFileHandler, EPiServer.Framework" /> <handlers> </system.webServer> <staticFile expirationTime="-1.0:0:0" /> </location> </configuration>
The component that is responsible for delivering static files is the Web.StaticFileHandler class. It is possible to write an own custom static file handler (must implement System.Web.IHttpHandler) that can serve static files. For example, to add response headers an alternative is to let the custom handler extend Web.StaticFileHandler, for example, override the SetCachePolicy method to add response headers for VirtualFiles. To register a custom httpHandler it should be configured in the system.webServer/handlers section (either globally or for a specific location depending on the wanted scope).
- The Caching section in the EPiServer CMS SDK for more information on caching of page data, output, VPP, Dynamic Data Store (DDS) etc.