Olá, sou novo no Magento2 e estou tentando descobrir como o RequireJS funciona no Magento.
Aqui está a minha situação:
Eu tenho o seguinte módulo:
app/code/Mymodule/Test/view/frontend/requirejs-config.js
Aqui está o conteúdo deste arquivo:
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'
}
}
};
Meu tema está neste local:
app/design/frontend/Mycompany/Basic
Meus Javascripts estão no seguinte local:
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
No arquivo PHTML:
app/code/Mymodule/Test/view/frontend/templates/home.phtml
Eu adicionei as linhas:
require(['jqueryNoConflict', 'flexslider'],function($, flexslider){
(function($) {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
Quando verifico minha página no navegador, recebo o erro 404 com os caminhos:
http://mag2.com.local/pub/static/frontend/Mycompany/Basic/en_US/flexslider.js
Mas se eu alterar a linha require [] para isso:
require(['Mymodule_Test/js/jquery.no-conflict', 'Mymodule_Test/js/jquery.flexslider-min'],function($, flexslider){
(function() {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
os arquivos estão carregando.
Também limpei o cache, meu tema está correto, executei o comando:
php bin/magento setup:static-content:deploy
Portanto, não consigo descobrir por que meu requirejs-config.js não está carregando. Eu segui a documentação também.
Por favor ajude
Respostas:
Eu encontrei o problema
Em pub / static / _requirejs / frontend / Namespace / Theme / en_US , exclua o arquivo requirejs-config.js .
Atualize sua página e ela será gerada novamente com novo conteúdo.
Se não funcionar, exclua o requirejs-config.js e execute os seguintes comandos:
fonte
O problema é que você não ativou o modo de desenvolvedor. Como resultado, o cache de arquivos está na
pub/static
pasta.fonte
Após o comando Deploy, você deve definir o modo de desenvolvedor e limpar o cache. Está funcionando bem.
Limpe também o cache do navegador para ver o efeito.
fonte
Isso pode ajudar alguém com um problema muito semelhante no local com nginx. O bloco / static não foi reescrito corretamente e isso precisou ser adicionado por este comentário https://github.com/magento/magento2/issues/7869#issuecomment-268585438
fonte
Verifique se o
.htacess
arquivo existe napub/static
pasta e, em seguida, aplique o comando deploy.fonte
Você pode seguir as etapas abaixo e será corrigido.
1) Defina o modo de implantação como produção - php magento deploy: mode: set production (a minificação js e css funciona com o modo de produção. Se você estiver no modo desenvolvedor com o código minificado acima, os problemas aparecerão como eu experimentei. pode manter o modo de desenvolvedor. Verifique também usando echo o print_r ($ _ SERVER) no index.php se o modo de produção ou o modo de desenvolvedor está definido corretamente antes de carregar o site)
2) Limpe todas as configurações de caches no servidor
3) Limpe o cache do navegador e visualize-o no modo de navegação anônima. É isso aí!
Felicidades!
fonte