Hola, soy nuevo en Magento2 e intento descubrir cómo funciona RequireJS en Magento.
Aquí está mi situación:
Tengo el siguiente módulo:
app/code/Mymodule/Test/view/frontend/requirejs-config.js
Aquí está el contenido de este archivo:
var config = {
map: {
'*': {
jQuery110: "Mymodule_Test/js/jquery-1.10.2",
jqueryNoConflict: 'Mymodule_Test/js/jquery.no-conflict',
flexslider: 'Mymodule_Test/js/jquery.flexslider-min',
header: 'Mymodule_Test/js/store/header'
}
}
};
Mi tema está en esta ubicación:
app/design/frontend/Mycompany/Basic
Mis Javascripts están en la siguiente ubicación:
app/code/Mymodule/Test/view/frontend/web/js/jquery.no-conflict.js
app/code/Mymodule/Test/view/frontend/web/js/jquery.flexslider-min.js
app/code/Mymodule/Test/view/frontend/web/js/store/header.js
En el archivo PHTML:
app/code/Mymodule/Test/view/frontend/templates/home.phtml
Agregué las líneas:
require(['jqueryNoConflict', 'flexslider'],function($, flexslider){
(function($) {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
Cuando reviso mi página en el navegador, obtengo un error 404 con las rutas:
http://mag2.com.local/pub/static/frontend/Mycompany/Basic/en_US/flexslider.js
Pero si cambio la línea require [] a esto:
require(['Mymodule_Test/js/jquery.no-conflict', 'Mymodule_Test/js/jquery.flexslider-min'],function($, flexslider){
(function() {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
Los archivos se están cargando.
También borré el caché, mi tema es correcto, ejecuté el comando:
php bin/magento setup:static-content:deploy
Por lo tanto, no puedo entender por qué mi requirejs-config.js no se carga. Seguí la documentación también.
Por favor ayuda
Respuestas:
Encontré el problema.
En pub / static / _requirejs / frontend / Namespace / Theme / en_US , elimine el archivo requirejs-config.js .
Actualice su página y se generará nuevamente con nuevo contenido.
Si no funciona, elimine requirejs-config.js y ejecute los siguientes comandos:
fuente
El problema es que no habilitaste el modo desarrollador. Como resultado, el caché de archivos está en la
pub/static
carpeta.fuente
Después del comando Implementar, debe configurar el modo de desarrollador y borrar la memoria caché. Está funcionando bien.
También borre la memoria caché del navegador para ver el efecto.
fuente
Esto puede ayudar a otra persona con un problema muy similar en local con nginx. El bloque / static no se estaba reescribiendo correctamente y esto debía agregarse según este comentario https://github.com/magento/magento2/issues/7869#issuecomment-268585438
fuente
Asegúrese de que el
.htacess
archivo exista en lapub/static
carpeta. y luego aplique el comando de despliegue.fuente
Puede seguir los pasos a continuación y se solucionará.
1) Establezca el modo de implementación en producción - php magento deploy: mode: set production (la minificación js y css funcionará con el modo de producción. Si está en modo desarrollador con el código minimizado, los problemas anteriores aparecerán tal como lo experimenté. Si la minificación lo deshabilitó, puede mantener el modo desarrollador. También verifique usando echo the print_r ($ _ SERVER) en index.php que el modo de producción o el modo desarrollador se configuraron correctamente antes de cargar el sitio web)
2) Borrar todas las configuraciones de cachés en el servidor
3) Borre el caché del navegador y véalo en modo incógnito. ¡Eso es!
¡Salud!
fuente