Я недавно установил последнюю версию magento, т.е. Magento 2.3.0, на локальный компьютер с php 7.2.4
Установил его с помощью интерфейса командной строки.
Но когда я устал, чтобы запустить его, покажи мне ошибку, как
Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid template file: 'D:/wamp64/www/mage23/vendor/magento/module-theme/view/frontend/templates/page/js/require_js.phtml' in module: '' block's name: 'require.js'
magento2
magento2.3.0
MageLerner
источник
источник
Ответы:
Да, это проблема с окнами. Windows использует «\» в качестве разделителя, массив «directoryies» содержит записи с «/» в качестве разделителя, поэтому проверка всегда будет неудачной. Так что вам нужно исправить это, заменив разделитель в основном файле:
функция isPathInDirectories заменяет приведенный ниже код в функции isPathInDirectories
источник
DIRECTORY_SEPARATOR
как и весь остальной мир, и не имеют этой конкретной проблемы, которая, кажется, единственная вещь, работающая в Windows?Для меня решение сработало, перейдя в файл \ vendor \ magento \ framework \ View \ Element \ Template \ File \ Validator.php и заменив приведенное ниже определение функции следующим образом:
PS: Это проблема Windows.
источник
Magento 2.3 не поддерживает Windows. Вы можете найти мое решение здесь: введите описание ссылки здесь
источник
Это основная проблема не только Magento 2.3.0, но я столкнулся с этой проблемой и в Magento 2.2.7. Чтобы заставить код работать на окнах вместо использования realpath, просто используйте аргумент $ path, переданный методу
Перейдите по пути /vendor/magento/framework/View/Element/Template/File/Validator.php и вместо строки
использование
Или следите за этим обсуждением https://github.com/magento/magento2/issues/19480
источник
В Magento 2.2.9 замените /vendor/magento/framework/View/Element/Template/File/Validator.php isPathInDirectories функциональным кодом на этот код
источник
Это, вероятно, происходит при разработке под Windows System.
Перейти к строке 140 в файле Path /vendor/magento/framework/View/Element/Template/File/Validator.php Заменить этот код строки
С
Остерегайтесь этой строки кода
Это, вероятно, не будет работать из-за php обратной косой черты. вы должны сделать двойную обратную косую черту, чтобы явно указать PHP, что он имеет дело не с новой строкой, а с обратной.
источник
Пожалуйста, смотрите, это должно быть двойной слеш то есть "\\"
источник
Как уже упоминалось, проблема заключается в совместимости Windows. Но я бы порекомендовал изменить его немного по-другому, чтобы он работал даже при миграции систем, например, для локальной разработки в Windows и последующего развертывания на сервере Linux. Так что только в том случае, если вы работаете в Windows, вы скорректируете путь.
В
в
замещать
с:
а) PHP> = 7.2:
б) PHP <7.2:
источник