From c257cfe1dc9ef5299ce649aee6e324d5d5008163 Mon Sep 17 00:00:00 2001 From: Benjamin Mack <benni@typo3.org> Date: Tue, 14 Jul 2015 18:05:36 +0200 Subject: [PATCH] [TASK] Add GET parameter to JS files fetched via RequireJS As most files are loaded via RequireJS now, the configuration needs to add a GET parameter in order to avoid browser caching of changed JavaScript files. For development environments the current timestamp is added. For other environments / application contexts a hash based on the TYPO3_version is added, allowing to have end-users to fetch the latest version after e.g. TYPO3 has been updated. Resolves: #68133 Releases: master Change-Id: Ifbc13cafe519a2a83f51c3869a028028f3b24368 Reviewed-on: http://review.typo3.org/41219 Reviewed-by: Georg Ringer <georg.ringer@gmail.com> Tested-by: Georg Ringer <georg.ringer@gmail.com> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> Tested-by: Christian Kuhn <lolli@schwarzbu.ch> --- typo3/sysext/core/Classes/Page/PageRenderer.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/typo3/sysext/core/Classes/Page/PageRenderer.php b/typo3/sysext/core/Classes/Page/PageRenderer.php index 73f7dc0951c8..86698eca2a56 100644 --- a/typo3/sysext/core/Classes/Page/PageRenderer.php +++ b/typo3/sysext/core/Classes/Page/PageRenderer.php @@ -1547,6 +1547,12 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface { // load all paths to map to package names / namespaces if (empty($this->requireJsConfig)) { + // In order to avoid browser caching of JS files, adding a GET parameter to the files loaded via requireJS + if (GeneralUtility::getApplicationContext()->isDevelopment()) { + $this->requireJsConfig['urlArgs'] = 'bust=' . $GLOBALS['EXEC_TIME']; + } else { + $this->requireJsConfig['urlArgs'] = 'bust=' . GeneralUtility::shortMD5(TYPO3_version . $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey']); + } // first, load all paths for the namespaces, and configure contrib libs. $this->requireJsConfig['paths'] = array( 'jquery-ui' => $this->backPath . 'sysext/core/Resources/Public/JavaScript/Contrib/jquery-ui', -- GitLab