Recientemente instalé la última versión de magento, es decir, Magento 2.3.0 en una máquina de wamp local con php 7.2.4
Lo instalé usando la interfaz de línea de comando.
Pero cuando estoy cansado de correr me muestra un error 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
fuente
fuente
Respuestas:
Sí, este es el problema con Windows. Windows usa "\" como separador, la matriz "directorios" contiene entradas con "/" como separador, por lo que la comprobación siempre fallará. Por lo tanto, debe solucionar esto reemplazando el separador en el archivo central:
La función isPathInDirectories reemplaza el código siguiente en la función isPathInDirectories
fuente
DIRECTORY_SEPARATOR
como el resto del mundo y no tener este problema específico que parece ser lo único que funciona en Windows?Para mí, la solución trabajada es ir al archivo \ vendor \ magento \ framework \ View \ Element \ Template \ File \ Validator.php y reemplazar la siguiente definición de función como se muestra a continuación:
PD: Este es un problema específico de Windows.
fuente
Magento 2.3 no es compatible con Windows. Puede encontrar mi solución aquí: ingrese la descripción del enlace aquí
fuente
Es el problema central no solo de Magento 2.3.0, sino que también enfrenté ese problema en Magento 2.2.7. Para que el código funcione en Windows en lugar de usar realpath, solo use el argumento $ path pasado al método
Vaya a la ruta /vendor/magento/framework/View/Element/Template/File/Validator.php y en lugar de la línea
utilizar
O siga esta discusión https://github.com/magento/magento2/issues/19480
fuente
En Magento 2.2.9 reemplace /vendor/magento/framework/View/Element/Template/File/Validator.php el código de función isPathInDirectories con este código
fuente
Esto probablemente ocurre cuando se desarrolla bajo el sistema Windows.
Vaya a la línea 140 en la ruta del archivo /vendor/magento/framework/View/Element/Template/File/Validator.php Reemplace este código de línea
Con
Cuidado con esta línea de código
Esto probablemente no funcionará debido al escape de barra invertida de php. tienes que hacer una doble barra invertida para decirle explícitamente a PHP que no se trata de una nueva línea aquí sino de una barra invertida.
fuente
Por favor, vea eso, debe ser una barra doble, es decir, "\\"
fuente
Como se mencionó, el problema es la compatibilidad de Windows. Pero recomendaría cambiarlo de manera un poco diferente para que funcione incluso cuando se migran sistemas, por ejemplo, para el desarrollo local en Windows y la posterior implementación en un servidor Linux. De modo que solo en caso de que esté operando en Windows, ajustará la ruta.
En
en
reemplazar
con:
a) PHP> = 7.2:
b) PHP <7.2:
fuente