Привет, я новичок в Magento2 и пытаюсь понять, как RequireJS работает в Magento.
Вот моя ситуация:
У меня есть следующий модуль:
app/code/Mymodule/Test/view/frontend/requirejs-config.js
Вот содержимое этого файла:
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'
}
}
};
Моя тема находится в этом месте:
app/design/frontend/Mycompany/Basic
Мои Javascripts находятся в следующем месте:
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
В файле PHTML:
app/code/Mymodule/Test/view/frontend/templates/home.phtml
Я добавил строки:
require(['jqueryNoConflict', 'flexslider'],function($, flexslider){
(function($) {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
Когда я проверяю свою страницу в браузере, я получаю ошибку 404 с путями:
http://mag2.com.local/pub/static/frontend/Mycompany/Basic/en_US/flexslider.js
Но если я изменю строку require [] на эту:
require(['Mymodule_Test/js/jquery.no-conflict', 'Mymodule_Test/js/jquery.flexslider-min'],function($, flexslider){
(function() {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
файлы загружаются.
Я также очистил кеш, моя тема верна, я выполнил команду:
php bin/magento setup:static-content:deploy
Итак, я не могу понять, почему мой requirejs-config.js не загружается. Я также следил за документацией.
Пожалуйста помоги
Ответы:
Я нашел проблему.
В каталоге pub / static / _requirejs / frontend / Namespace / Theme / en_US удалите файл requirejs-config.js .
Обновите свою страницу, и она будет сгенерирована снова с новым контентом.
Если это не работает, удалите requirejs-config.js и выполните следующие команды:
источник
Проблема в том, что вы не включили режим разработчика. В результате кеш файлов находится в
pub/static
папке.источник
После команды Deploy необходимо установить режим разработчика и очистить кеш. Работает нормально.
Также очистите кеш браузера, чтобы увидеть эффект.
источник
Это может помочь кому-то еще с очень похожей проблемой в локальной среде с nginx. Блок / static не был переписан правильно, и это необходимо добавить в соответствии с этим комментарием https://github.com/magento/magento2/issues/7869#issuecomment-268585438
источник
Пожалуйста, убедитесь, что
.htacess
файл существует вpub/static
папке. и затем примените команду развертывания.источник
Вы можете выполнить следующие шаги, и это будет исправлено.
1) Установите режим развертывания на производство - php magento deploy: mode: установите производство (js и css minification будут работать с производственным режимом. Если вы находитесь в режиме разработчика с кодом, уменьшенным выше, то проблемы будут отображаться так, как я это испытал. Если минификация отключена, вы может сохранить режим разработчика. Также проверьте с помощью echo print_r ($ _ SERVER) в index.php, что рабочий режим или режим разработчика правильно установлены перед загрузкой веб-сайта)
2) Очистить все настройки кешей на сервере
3) Очистите кеш браузера и просмотрите его в режиме инкогнито. Это оно!
Ура!
источник