function CssOptimizer::loadNestedFile
Loads stylesheets recursively and returns contents with corrected paths.
This function is used for recursive loading of stylesheets and returns the stylesheet content with all url() paths corrected.
Parameters
array $matches: An array of matches by a preg_replace_callback() call that scans for @import-ed CSS files, except for external CSS files.
Return value
string The contents of the CSS file at $matches[1], with corrected paths.
See also
\Drupal\Core\Asset\AssetOptimizerInterface::loadFile()
File
-
core/
lib/ Drupal/ Core/ Asset/ CssOptimizer.php, line 186
Class
- CssOptimizer
- Optimizes a CSS asset.
Namespace
Drupal\Core\AssetCode
protected function loadNestedFile($matches) {
$filename = $matches[1];
// Load the imported stylesheet and replace @import commands in there as
// well.
$file = $this->loadFile($filename, NULL, FALSE);
// Determine the file's directory.
$directory = dirname($filename);
// If the file is in the current directory, make sure '.' doesn't appear in
// the url() path.
$directory = $directory == '.' ? '' : $directory . '/';
// Alter all internal asset paths. Leave external paths alone. We don't need
// to normalize absolute paths here because that will be done later.
return preg_replace('/url\\(\\s*([\'"]?)(?![a-z]+:|\\/+)([^\'")]+)([\'"]?)\\s*\\)/i', 'url(\\1' . $directory . '\\2\\3)', $file);
}