Eu instalei recentemente a versão mais recente do magento, ou seja, o Magento 2.3.0 em uma máquina wamp local com php 7.2.4
Instalei usando a interface da linha de comandos.
Mas quando eu cansei de executá-lo, mostre-me um erro como
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
fonte
fonte
Respostas:
Sim, este é o problema do Windows. O Windows usa "\" como separador, a matriz "diretórios" contém entradas com "/" como separador, portanto, a verificação sempre falha. Então, você precisa corrigir isso substituindo o separador no arquivo principal:
A função isPathInDirectories substitui o código abaixo na função isPathInDirectories
fonte
DIRECTORY_SEPARATOR
como o resto do mundo e não têm esse problema específico que parece ser a única coisa que funciona no Windows?Para mim, a solução trabalhada é ir para o arquivo \ vendor \ magento \ framework \ View \ Element \ Template \ File \ Validator.php e substituir a definição de função abaixo, como abaixo:
PS: Este é um problema específico do Windows.
fonte
Magento 2.3 não suporta janelas. Você pode encontrar minha solução aqui: insira a descrição do link aqui
fonte
É a questão principal não apenas do Magento 2.3.0, mas também enfrentei esse problema no Magento 2.2.7. Para fazer o código funcionar no Windows em vez de usar o caminho real, use o argumento $ path passado ao método
Vá para o caminho /vendor/magento/framework/View/Element/Template/File/Validator.php e em vez da linha
usar
Ou siga esta discussão https://github.com/magento/magento2/issues/19480
fonte
No Magento 2.2.9, substitua o código de função /vendor/magento/framework/View/Element/Template/File/Validator.php isPathInDirectories por este código
fonte
Isso provavelmente acontece durante o desenvolvimento no sistema Windows.
Vá para a linha 140 no arquivo Path /vendor/magento/framework/View/Element/Template/File/Validator.php Substitua este código de linha
Com
Cuidado com esta linha de código
Provavelmente não funcionará por causa da barra invertida do php. você tem que fazer uma barra invertida dupla para dizer ao PHP explicitamente que não está lidando com nova linha aqui, mas com uma barra invertida.
fonte
Por favor, veja que, deve ser barra dupla, ou seja, "\\"
fonte
Como mencionado, o problema é a compatibilidade do Windows. Mas eu recomendaria alterá-lo de maneira um pouco diferente para funcionar mesmo durante a migração de sistemas, por exemplo, para desenvolvimento local no Windows e implantação posterior em um servidor Linux. Portanto, apenas no caso de você estar operando no Windows, você ajustará o caminho.
No
no
substituir
com:
a) PHP> = 7.2:
b) PHP <7.2:
fonte