- How to disable cache for a custom page ?
- How to disable cache for a specific content type ?
Disable cache for a custom page from route declaration.
If you want to disable cache for a custom controller (Custom module), You have no_cache option (YOUR_MODULE.routing.yml).
Example :
File : mymodule.routing.yml
mymodule.myroute:
 path: '/mymodule/mypage'
 defaults:
   _controller: '\Drupal\mymodule\Controller\Pages::mypage'
   _title: 'No cache page'
 requirements:
   _access: 'TRUE'
 options:
   no_cache: 'TRUE'
Â
Disable cache for a specific content type
Example:
function yourmodule_node_view(array &$build, NodeInterface $node, $display, $view_mode) {
 if ($node->getType() == 'yourtype' && $view_mode == 'full') {
   $build['#cache']['max-age'] = 0;
 }
}
Â
Disable cache from a controller.
Note : This will work in no cache on page level (not working for anonymous users for example).
Set cache max age on rederer array.
$output = [];
$output['#cache']['max-age'] = 0;
Â
Comments