Это будет ошибка с адресом this commit .Автор изменил $path
на
$this->fileDriver->getRealPath($path)
, который просто вызывает realpath()
на $path
, но это может изменить разделители каталогов на $path
, которые ранее были затронуты
#/vendor/magento/framework/View/Element/Template/File/Validator.php:114
$filename = str_replace('\\', '/', $filename);
В ОС Windows это вернет изменения, указанные выше str_replace
, так что путь, подобный
D:/Magento2.3/vendor/magento
, будет канонизирован для его специфичной для Windows версии:
D:\Magento2.3\vendor\magento
, и это не будетпривести к успешному сравнению в isPathInDirectories()
методе Magento\Framework\View\Element\Template\File\Validator
класса:
foreach ($directories as $directory) {
if (0 === strpos($realPath, $directory)) {
return true;
}
}
Решение
В настоящее время мы можем пойти на грязное быстрое изменение в вышеупомянутом цикле foreach
так, чтобымы можем запустить наше magento без дальнейших проблем по этому вопросу:
#/vendor/magento/framework/View/Element/Template/File/Validator.php:139
foreach ($directories as $directory) {
// Add this line
$realDirectory = $this->fileDriver->getRealPath($directory);
// and replace `$directory` with `$realDirectory`
if (0 === strpos($realPath, $realDirectory)) {
return true;
}
}