Overwrite Cache-Control header settings for resources in liferay-web.xml file

Issue

  • How can I overwrite the Cache-Control header settings for resources that are served via the /documents/ path? We have tried updating the lifery-web.xml to add a servlet filter for that url-pattern, but the changes are not being applied.

Environment

  • Liferay DXP 7.0

Resolution

  • This can occur if the following property is set:
    • com.liferay.portal.servlet.filters.header.HeaderFilter=false
  • This configuration, set by default in the portal-developer.properties file, disables the Header Filter, which causes the system to not read changes that were set in liferay-web.xml. If you disable using the portal-developer.properties file or set the property equal to true, it will allow the Cache-Control header to be overwritten according to what's set in the liferay-web.xml file

Additional Information

  • By default, Liferay disables cache for all documents and images in its document library and sets "Cache-Control: private"
  • Once the Header Filter is no longer disabled, the following filter mapping can be added to the liferay-web.xml file found in /webapps/ROOT/WEB-INF/ to set a Cache-control value:
    <filter-mapping> 
    <filter-name>Header Filter</filter-name> 
    <url-pattern>/documents/*</url-pattern> 
    </filter-mapping>
  • How to modify the Cache-Control header to prevent browser caching issues
Was this article helpful?
0 out of 0 found this helpful