diff --git a/core/lib/Drupal/Core/Asset/CssOptimizer.php b/core/lib/Drupal/Core/Asset/CssOptimizer.php index bc2aef723866b07b7c4f07e870dff984c776d754..413106cf9833f0af7709c7272d10580286a07c07 100644 --- a/core/lib/Drupal/Core/Asset/CssOptimizer.php +++ b/core/lib/Drupal/Core/Asset/CssOptimizer.php @@ -90,8 +90,8 @@ protected function processFile($css_asset) { // Store base path. $this->rewriteFileURIBasePath = $css_base_path . '/'; - // Anchor all paths in the CSS with its base URL, ignoring external and absolute paths. - return preg_replace_callback('/url\(\s*[\'"]?(?![a-z]+:|\/+)([^\'")]+)[\'"]?\s*\)/i', [$this, 'rewriteFileURI'], $contents); + // Anchor all paths in the CSS with its base URL, ignoring external and absolute paths and paths starting with '#'. + return preg_replace_callback('/url\(\s*[\'"]?(?![a-z]+:|\/+|#|%23)([^\'")]+)[\'"]?\s*\)/i', [$this, 'rewriteFileURI'], $contents); } /** diff --git a/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php b/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php index 2c4992841629c9966015414241a935ec5d9a4fcb..347759527f1a2c0ff96888da6ebdf4d07c1cba22 100644 --- a/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php +++ b/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php @@ -222,6 +222,18 @@ public function providerTestOptimize() { ], file_get_contents($absolute_path . 'quotes.css.optimized.css'), ], + [ + [ + 'group' => -100, + 'type' => 'file', + 'weight' => 0.013, + 'media' => 'all', + 'preprocess' => TRUE, + 'data' => $path . 'import3.css', + 'basename' => 'import3.css', + ], + file_get_contents($absolute_path . 'import3.css.optimized.css'), + ], ]; } diff --git a/core/tests/Drupal/Tests/Core/Asset/css_test_files/import3.css b/core/tests/Drupal/Tests/Core/Asset/css_test_files/import3.css new file mode 100644 index 0000000000000000000000000000000000000000..b2ba7a03ece432bbda9480551e11207cd85d9ded --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Asset/css_test_files/import3.css @@ -0,0 +1,6 @@ +div { + clip-path: url('#clip-cloud'); +} +div { + clip-path: url('/abc/#clip-cloud'); +} diff --git a/core/tests/Drupal/Tests/Core/Asset/css_test_files/import3.css.optimized.css b/core/tests/Drupal/Tests/Core/Asset/css_test_files/import3.css.optimized.css new file mode 100644 index 0000000000000000000000000000000000000000..119376b467fe69438ef0552e6f7c2ea6b7555028 --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Asset/css_test_files/import3.css.optimized.css @@ -0,0 +1 @@ +div{clip-path:url('#clip-cloud');}div{clip-path:url('/abc/#clip-cloud');}