diff --git a/core/lib/Drupal/Core/Asset/CssCollectionOptimizerLazy.php b/core/lib/Drupal/Core/Asset/CssCollectionOptimizerLazy.php
index e11d66293b..b7dbbc9b4e 100644
--- a/core/lib/Drupal/Core/Asset/CssCollectionOptimizerLazy.php
+++ b/core/lib/Drupal/Core/Asset/CssCollectionOptimizerLazy.php
@@ -123,7 +123,7 @@ public function optimize(array $css_assets, array $libraries) {
         $query = ['delta' => "$order"] + $query_args;
         $filename = 'css_' . $this->generateHash($css_asset) . '.css';
         $uri = 'assets://css/' . $filename;
-        $css_assets[$order]['data'] = $this->fileUrlGenerator->generateAbsoluteString($uri) . '?' . UrlHelper::buildQuery($query);
+        $css_assets[$order]['data'] = $this->fileUrlGenerator->generateString($uri) . '?' . UrlHelper::buildQuery($query);
       }
       unset($css_assets[$order]['items']);
     }
diff --git a/core/lib/Drupal/Core/Asset/JsCollectionOptimizerLazy.php b/core/lib/Drupal/Core/Asset/JsCollectionOptimizerLazy.php
index b14fe621da..f1477eac85 100644
--- a/core/lib/Drupal/Core/Asset/JsCollectionOptimizerLazy.php
+++ b/core/lib/Drupal/Core/Asset/JsCollectionOptimizerLazy.php
@@ -135,7 +135,7 @@ public function optimize(array $js_assets, array $libraries) {
           ] + $query_args;
           $filename = 'js_' . $this->generateHash($js_asset) . '.js';
           $uri = 'assets://js/' . $filename;
-          $js_assets[$order]['data'] = $this->fileUrlGenerator->generateAbsoluteString($uri) . '?' . UrlHelper::buildQuery($query);
+          $js_assets[$order]['data'] = $this->fileUrlGenerator->generateString($uri) . '?' . UrlHelper::buildQuery($query);
         }
         unset($js_assets[$order]['items']);
       }
diff --git a/core/tests/Drupal/FunctionalTests/Asset/AssetOptimizationTest.php b/core/tests/Drupal/FunctionalTests/Asset/AssetOptimizationTest.php
index 4833797796..df18a9c9a8 100644
--- a/core/tests/Drupal/FunctionalTests/Asset/AssetOptimizationTest.php
+++ b/core/tests/Drupal/FunctionalTests/Asset/AssetOptimizationTest.php
@@ -278,4 +278,30 @@ protected function invalidExclude(string $url): string {
     return $this->getAbsoluteUrl($parts['path'] . '?' . $query . '#' . $parts['fragment']);
   }
 
+  /**
+   * Regression?
+   */
+  public function testRootRelativeUrlsInAggregates() {
+    $this->config('system.performance')->set('css', [
+      'preprocess' => TRUE,
+      'gzip' => TRUE,
+    ])->save();
+    $this->rebuildAll();
+
+    $this->drupalGet('<front>');
+
+    // Find the first stylesheet and assert it is an aggregate.
+    $href = $this->cssSelect('link[rel=stylesheet]')[0]->getAttribute('href');
+    $regexp = '#^' . base_path() . $this->siteDirectory . '/files/css/css_[a-zA-Z0-9_-]{43}\.css#';
+    $this->assertMatchesRegularExpression($regexp, $href);
+
+    // Fetch the first aggregate and assert it references images using
+    // root-relative URLs.
+    $css = $this->drupalGet($this->baseUrl . $href);
+    // CSS references other files.
+    $this->assertStringContainsString('url(', $css);
+    // CSS references other files by root-relative URL.
+    $this->assertStringContainsString('url(' . base_path() . 'core/misc/tree.png)', $css);
+  }
+
 }
