 core/includes/file.inc                             |  2 +-
 .../Core/Asset/CssCollectionRendererUnitTest.php   |  2 +-
 .../Tests/Core/Asset/CssOptimizerUnitTest.php      | 28 +++++++++++++++-------
 .../css_input_with_import.css.optimized.css        |  2 +-
 .../css_input_with_import.css.optimized.css        |  2 +-
 5 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/core/includes/file.inc b/core/includes/file.inc
index 3e5eb8c..41d01dd 100644
--- a/core/includes/file.inc
+++ b/core/includes/file.inc
@@ -216,7 +216,7 @@ function file_create_url($uri) {
       // If this is not a properly formatted stream, then it is a shipped file.
       // Therefore, return the urlencoded URI with the base URL prepended.
       $options = UrlHelper::parse($uri);
-      $path = $GLOBALS['base_url'] . '/' . UrlHelper::encodePath($options['path']);
+      $path = $GLOBALS['base_path'] . UrlHelper::encodePath($options['path']);
       // Append the query.
       if ($options['query']) {
         $path .= '?' . UrlHelper::buildQuery($options['query']);
diff --git a/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php b/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
index eab4fe4..96f5424 100644
--- a/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
@@ -20,7 +20,7 @@
    * Component/Utility.
    */
   function file_create_url($uri) {
-    return 'file_create_url:' . $uri;
+    return 'file_create_url:/' . $uri;
   }
 
 }
diff --git a/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php b/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php
index 03bb980..c9b3138 100644
--- a/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php
@@ -20,7 +20,7 @@
    * Component/Utility.
    */
   function file_create_url($uri) {
-    return 'file_create_url:' . $uri;
+    return 'file_create_url:/' . $uri;
   }
 
 }
@@ -49,6 +49,11 @@ function file_uri_scheme($uri) {
 class CssOptimizerUnitTest extends UnitTestCase {
 
   /**
+   * {@inheritdoc}
+   */
+  protected $backupGlobals = FALSE;
+
+  /**
    * A CSS asset optimizer.
    *
    * @var \Drupal\Core\Asset\CssOptimizer object.
@@ -65,7 +70,8 @@ protected function setUp() {
    * Provides data for the CSS asset optimizing test.
    */
   function providerTestOptimize() {
-    $path = dirname(__FILE__)  . '/css_test_files/';
+    $path = 'core/tests/Drupal/Tests/Core/Asset/css_test_files/';
+    $absolute_path = dirname(__FILE__)  . '/css_test_files/';
     return array(
       // File. Tests:
       // - Stripped comments and white-space.
@@ -82,7 +88,7 @@ function providerTestOptimize() {
           'browsers' => array('IE' => TRUE, '!IE' => TRUE),
           'basename' => 'css_input_without_import.css',
         ),
-        file_get_contents($path . 'css_input_without_import.css.optimized.css'),
+        file_get_contents($absolute_path . 'css_input_without_import.css.optimized.css'),
       ),
       // File. Tests:
       // - Proper URLs in imported files. (https://www.drupal.org/node/265719)
@@ -102,7 +108,7 @@ function providerTestOptimize() {
           'browsers' => array('IE' => TRUE, '!IE' => TRUE),
           'basename' => 'css_input_with_import.css',
         ),
-        str_replace('url(images/icon.png)', 'url(' . file_create_url($path . 'images/icon.png') . ')', file_get_contents($path . 'css_input_with_import.css.optimized.css')),
+        str_replace('url(/core', 'url(file_create_url:/core', file_get_contents($absolute_path . 'css_input_with_import.css.optimized.css')),
       ),
       // File. Tests:
       // - Retain comment hacks.
@@ -117,7 +123,7 @@ function providerTestOptimize() {
           'browsers' => array('IE' => TRUE, '!IE' => TRUE),
           'basename' => 'comment_hacks.css',
         ),
-        file_get_contents($path . 'comment_hacks.css.optimized.css'),
+        file_get_contents($absolute_path . 'comment_hacks.css.optimized.css'),
       ),
       // File in subfolder. Tests:
       // - CSS import path is properly interpreted.
@@ -134,7 +140,7 @@ function providerTestOptimize() {
           'browsers' => array('IE' => TRUE, '!IE' => TRUE),
           'basename' => 'css_input_with_import.css',
         ),
-        str_replace('url(../images/icon.png)', 'url(' . file_create_url($path . 'images/icon.png') . ')', file_get_contents($path . 'css_subfolder/css_input_with_import.css.optimized.css')),
+        str_replace('url(/core', 'url(file_create_url:/core', file_get_contents($absolute_path . 'css_subfolder/css_input_with_import.css.optimized.css'))
       ),
       // File. Tests:
       // - Any @charaset declaration at the beginning of a file should be
@@ -150,7 +156,7 @@ function providerTestOptimize() {
           'browsers' => array('IE' => TRUE, '!IE' => TRUE),
           'basename' => 'charset_sameline.css',
         ),
-        file_get_contents($path . 'charset.css.optimized.css'),
+        file_get_contents($absolute_path . 'charset.css.optimized.css'),
       ),
       array(
         array(
@@ -163,7 +169,7 @@ function providerTestOptimize() {
           'browsers' => array('IE' => TRUE, '!IE' => TRUE),
           'basename' => 'charset_newline.css',
         ),
-        file_get_contents($path . 'charset.css.optimized.css'),
+        file_get_contents($absolute_path . 'charset.css.optimized.css'),
       ),
       array(
         array(
@@ -226,7 +232,13 @@ function providerTestOptimize() {
    * @dataProvider providerTestOptimize
    */
   function testOptimize($css_asset, $expected) {
+    global $base_path;
+    $original_base_path = $base_path;
+    $base_path = '/';
+
     $this->assertEquals($expected, $this->optimizer->optimize($css_asset), 'Group of file CSS assets optimized correctly.');
+
+    $base_path = $original_base_path;
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Core/Asset/css_test_files/css_input_with_import.css.optimized.css b/core/tests/Drupal/Tests/Core/Asset/css_test_files/css_input_with_import.css.optimized.css
index 16bd93b..f8af0c4 100644
--- a/core/tests/Drupal/Tests/Core/Asset/css_test_files/css_input_with_import.css.optimized.css
+++ b/core/tests/Drupal/Tests/Core/Asset/css_test_files/css_input_with_import.css.optimized.css
@@ -1,4 +1,4 @@
-ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(images/icon.png);}.data .double-quote{background-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");}.data .single-quote{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z');}.data .no-quote{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=);}
+ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(/core/tests/Drupal/Tests/Core/Asset/css_test_files/images/icon.png);}.data .double-quote{background-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");}.data .single-quote{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z');}.data .no-quote{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=);}
 p,select{font:1em/160% Verdana,sans-serif;color:#494949;}
 @import url("http://example.com/style.css");@import url("//example.com/style.css");body{margin:0;padding:0;background:#edf5fa;font:76%/170% Verdana,sans-serif;color:#494949;}.this .is .a .test{font:1em/100% Verdana,sans-serif;color:#494949;}.this
 .is
diff --git a/core/tests/Drupal/Tests/Core/Asset/css_test_files/css_subfolder/css_input_with_import.css.optimized.css b/core/tests/Drupal/Tests/Core/Asset/css_test_files/css_subfolder/css_input_with_import.css.optimized.css
index 816039d..e327d99 100644
--- a/core/tests/Drupal/Tests/Core/Asset/css_test_files/css_subfolder/css_input_with_import.css.optimized.css
+++ b/core/tests/Drupal/Tests/Core/Asset/css_test_files/css_subfolder/css_input_with_import.css.optimized.css
@@ -1,4 +1,4 @@
-ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(../images/icon.png);}.data .double-quote{background-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");}.data .single-quote{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z');}.data .no-quote{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=);}
+ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(/core/tests/Drupal/Tests/Core/Asset/css_test_files/images/icon.png);}.data .double-quote{background-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");}.data .single-quote{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAABAAEDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKAAH//Z');}.data .no-quote{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAEAQAAAAAo/mtHAAAAIElEQVQIHWMRnWHwcRNLN8NZ7QYWwT8PlBlYsgqVBRsAankIMw5MtnoAAAAASUVORK5CYII=);}
 p,select{font:1em/160% Verdana,sans-serif;color:#494949;}
 body{margin:0;padding:0;background:#edf5fa;font:76%/170% Verdana,sans-serif;color:#494949;}.this .is .a .test{font:1em/100% Verdana,sans-serif;color:#494949;}.this
 .is
