diff --git a/core/lib/Drupal/Core/Asset/CssCollectionRenderer.php b/core/lib/Drupal/Core/Asset/CssCollectionRenderer.php
index d042176d09..9f65bbd3b6 100644
--- a/core/lib/Drupal/Core/Asset/CssCollectionRenderer.php
+++ b/core/lib/Drupal/Core/Asset/CssCollectionRenderer.php
@@ -36,7 +36,7 @@ public function render(array $css_assets) {
     // browser-caching. The string changes on every update or full cache
     // flush, forcing browsers to load a new copy of the files, as the
     // URL changed.
-    $query_string = $this->state->get('system.css_js_query_string') ?: '0';
+    $default_query_string = $this->state->get('system.css_js_query_string') ?: '0';
 
     // Defaults for LINK and STYLE elements.
     $link_element_defaults = [
@@ -57,6 +57,7 @@ public function render(array $css_assets) {
         case 'file':
           // The dummy query string needs to be added to the URL to control
           // browser-caching.
+          $query_string = $css_asset['version'] == -1 ? $default_query_string : 'v=' . $css_asset['version'];
           $query_string_separator = (strpos($css_asset['data'], '?') !== FALSE) ? '&' : '?';
           $element['#attributes']['href'] = file_url_transform_relative(file_create_url($css_asset['data'])) . $query_string_separator . $query_string;
           break;
