- 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