Bonjour, je suis nouveau sur Magento2 et j'essaie de comprendre comment fonctionne RequireJS dans Magento.
Voici ma situation:
J'ai le module suivant:
app/code/Mymodule/Test/view/frontend/requirejs-config.js
Voici le contenu de ce fichier:
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'
}
}
};
Mon thème est à cet endroit:
app/design/frontend/Mycompany/Basic
Mes Javascripts se trouvent à l'emplacement suivant:
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
Dans le fichier PHTML:
app/code/Mymodule/Test/view/frontend/templates/home.phtml
J'ai ajouté les lignes:
require(['jqueryNoConflict', 'flexslider'],function($, flexslider){
(function($) {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
Lorsque je vérifie ma page dans le navigateur, j'obtiens une erreur 404 avec les chemins:
http://mag2.com.local/pub/static/frontend/Mycompany/Basic/en_US/flexslider.js
Mais si je change la ligne require [] en ceci:
require(['Mymodule_Test/js/jquery.no-conflict', 'Mymodule_Test/js/jquery.flexslider-min'],function($, flexslider){
(function() {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
les fichiers se chargent.
J'ai également vidé le cache, mon thème est correct, j'ai exécuté la commande:
php bin/magento setup:static-content:deploy
Donc, je ne suis pas en mesure de comprendre pourquoi mon requirejs-config.js ne se charge pas. J'ai également suivi la documentation.
Veuillez aider
Réponses:
J'ai trouvé le problème.
Sous pub / static / _requirejs / frontend / Namespace / Theme / en_US , supprimez le fichier requirejs-config.js .
Actualisez votre page et elle sera à nouveau générée avec un nouveau contenu.
Si cela ne fonctionne pas, supprimez le requirejs-config.js et exécutez les commandes suivantes:
la source
Le problème est que vous n'avez pas activé le mode développeur. Par conséquent, le cache de fichiers se trouve dans le
pub/static
dossier.la source
Après la commande Deploy, vous devez définir le mode développeur et vider le cache. Son fonctionne bien.
Vider également le cache du navigateur pour voir l'effet.
la source
Cela peut aider quelqu'un d'autre avec un problème très similaire sur local avec nginx. Le bloc / statique n'a pas été réécrit correctement et cela devait être ajouté par ce commentaire https://github.com/magento/magento2/issues/7869#issuecomment-268585438
la source
Veuillez vous assurer que le
.htacess
fichier existe dans lepub/static
dossier. puis appliquez la commande deploy.la source
Vous pouvez suivre les étapes ci-dessous et ce sera corrigé.
1) Définir le mode de déploiement sur production - php magento deploy: mode: définir la production (la minification js et css fonctionnera avec le mode de production.Si vous êtes en mode développeur avec du code minifié ci-dessus, les problèmes apparaîtront comme je l'ai vécu. peut conserver le mode développeur. Vérifiez également en utilisant echo le print_r ($ _ SERVER) dans index.php que le mode de production ou le mode développeur est correctement défini avant de charger le site Web)
2) Effacez tous les caches installés sur le serveur
3) Videz le cache du navigateur et affichez-le en mode navigation privée. C'est ça!
À votre santé!
la source