diff --git a/core/lib/Drupal/Core/Asset/CssCollectionOptimizerLazy.php b/core/lib/Drupal/Core/Asset/CssCollectionOptimizerLazy.php index 847779fbda..34bfaad71c 100644 --- a/core/lib/Drupal/Core/Asset/CssCollectionOptimizerLazy.php +++ b/core/lib/Drupal/Core/Asset/CssCollectionOptimizerLazy.php @@ -74,19 +74,6 @@ public function optimize(array $css_assets, array $libraries) { // Group the assets. $css_groups = $this->grouper->group($css_assets); - // All asset group URLs will have exactly the same query arguments, except - // for the delta, so prepare them in advance. - $query_args = [ - 'language' => $this->languageManager->getCurrentLanguage()->getId(), - 'theme' => $this->themeManager->getActiveTheme()->getName(), - 'include' => UrlHelper::compressQueryParameter(implode(',', $this->dependencyResolver->getMinimalRepresentativeSubset($libraries))), - ]; - $ajax_page_state = $this->requestStack->getCurrentRequest()->get('ajax_page_state'); - $already_loaded = isset($ajax_page_state) ? explode(',', $ajax_page_state['libraries']) : []; - if ($already_loaded) { - $query_args['exclude'] = UrlHelper::compressQueryParameter(implode(',', $this->dependencyResolver->getMinimalRepresentativeSubset($already_loaded))); - } - $css_assets = []; foreach ($css_groups as $order => $css_group) { // We have to return a single asset, not a group of assets. It is now up @@ -116,6 +103,19 @@ public function optimize(array $css_assets, array $libraries) { } } + // All asset group URLs will have exactly the same query arguments, except + // for the delta, so prepare them in advance. + $query_args = [ + 'language' => $this->languageManager->getCurrentLanguage()->getId(), + 'theme' => $this->themeManager->getActiveTheme()->getName(), + 'include' => UrlHelper::compressQueryParameter(implode(',', $this->dependencyResolver->getMinimalRepresentativeSubset($libraries))), + ]; + $ajax_page_state = $this->requestStack->getCurrentRequest()->get('ajax_page_state'); + $already_loaded = isset($ajax_page_state) ? explode(',', $ajax_page_state['libraries']) : []; + if ($already_loaded) { + $query_args['exclude'] = UrlHelper::compressQueryParameter(implode(',', $this->dependencyResolver->getMinimalRepresentativeSubset($already_loaded))); + } + // Generate a URL for each group of assets, but do not process them inline, // this is done using optimizeGroup() when the asset path is requested. foreach ($css_assets as $order => $css_asset) { diff --git a/core/lib/Drupal/Core/Asset/JsCollectionOptimizerLazy.php b/core/lib/Drupal/Core/Asset/JsCollectionOptimizerLazy.php index 7c88dee2de..ac2edaafd7 100644 --- a/core/lib/Drupal/Core/Asset/JsCollectionOptimizerLazy.php +++ b/core/lib/Drupal/Core/Asset/JsCollectionOptimizerLazy.php @@ -71,21 +71,6 @@ public function optimize(array $js_assets, array $libraries) { // they're assumed to be successfully returned from the URL created whether // on disk or not. - // All group URLs have the same query arguments apart from the delta and - // scope, so prepare them in advance. - $language = $this->languageManager->getCurrentLanguage()->getId(); - $query_args = [ - 'language' => $language, - 'theme' => $this->themeManager->getActiveTheme()->getName(), - 'include' => UrlHelper::compressQueryParameter(implode(',', $this->dependencyResolver->getMinimalRepresentativeSubset($libraries))), - ]; - $ajax_page_state = $this->requestStack->getCurrentRequest() - ->get('ajax_page_state'); - $already_loaded = isset($ajax_page_state) ? explode(',', $ajax_page_state['libraries']) : []; - if ($already_loaded) { - $query_args['exclude'] = UrlHelper::compressQueryParameter(implode(',', $this->dependencyResolver->getMinimalRepresentativeSubset($already_loaded))); - } - // Group the assets. $js_groups = $this->grouper->group($js_assets); @@ -124,6 +109,23 @@ public function optimize(array $js_assets, array $libraries) { break; } } + if ($libraries) { + // All group URLs have the same query arguments apart from the delta and + // scope, so prepare them in advance. + $language = $this->languageManager->getCurrentLanguage()->getId(); + $query_args = [ + 'language' => $language, + 'theme' => $this->themeManager->getActiveTheme()->getName(), + 'include' => UrlHelper::compressQueryParameter(implode(',', $this->dependencyResolver->getMinimalRepresentativeSubset($libraries))), + ]; + $ajax_page_state = $this->requestStack->getCurrentRequest() + ->get('ajax_page_state'); + $already_loaded = isset($ajax_page_state) ? explode(',', $ajax_page_state['libraries']) : []; + if ($already_loaded) { + $query_args['exclude'] = UrlHelper::compressQueryParameter(implode(',', $this->dependencyResolver->getMinimalRepresentativeSubset($already_loaded))); + } + } + // Generate a URL for the group, but do not process it inline, this is // done by \Drupal\system\controller\JsAssetController. foreach ($js_assets as $order => $js_asset) {