Skip to main content
6 of 6
if $realDirectory in generated folder not exist. It will make magento 2 not working. Because, realpath will return false if $realDirectory not exisit and strpos will give an Error.

Update

This is Magento bug. Wrong paths to Windows are generated. The fixed fix is

Magento 2.3.0 - 2.3.3

#/vendor/magento/framework/View/Element/Template/File/Validator.php:140

the string

if (0 === strpos($realPath, $directory)) {
    return true;
}

to replace

$realDirectory = $this->fileDriver->getRealPath($directory);
if ($realDirectory && 0 === strpos($realPath, $realDirectory)) {
   return true;
}

Magento 2.2.7

/vendor/magento/framework/View/Element/Template/File/Validator.php:113

code

protected function isPathInDirectories($path, $directories)
{
    if (!is_array($directories)) {
        $directories = (array)$directories;
    }
    foreach ($directories as $directory) {
        if (0 === strpos($this->fileDriver->getRealPath($path), $directory)) {
            return true;
        }
    }
    return false;
}

to replace

protected function isPathInDirectories($path, $directories)
    {
        $realPath = str_replace('\\', '/', $this->fileDriver->getRealPath($path));
        if (!is_array($directories)) {
            $directories = (array)$directories;
        }
        foreach ($directories as $directory) {
            if (0 === strpos($realPath, $directory)) {
                return true;
            }
        }
        return false;
    }

If You can't find out the (/vendor/magento/framework/) folder in magento 2.2.7 - 2.3.3 . Then You can check it here:

#lib\internal\Magento\Framework\View\Element\Template\File\Validator.php
Andrey Rad
  • 901
  • 8
  • 7