Hai, saya baru mengenal Magento2 dan mencoba mencari tahu bagaimana RequireJS bekerja di Magento.
Inilah situasi saya:
Saya memiliki modul berikut:
app/code/Mymodule/Test/view/frontend/requirejs-config.js
Inilah isi dari file ini:
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'
}
}
};
Tema saya ada di lokasi ini:
app/design/frontend/Mycompany/Basic
Javascripts saya ada di lokasi berikut:
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
Dalam file PHTML:
app/code/Mymodule/Test/view/frontend/templates/home.phtml
Saya menambahkan baris:
require(['jqueryNoConflict', 'flexslider'],function($, flexslider){
(function($) {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
Ketika saya memeriksa halaman saya di browser, saya mendapatkan 404 kesalahan dengan jalur:
http://mag2.com.local/pub/static/frontend/Mycompany/Basic/en_US/flexslider.js
Tetapi jika saya mengubah baris wajib [] ke ini:
require(['Mymodule_Test/js/jquery.no-conflict', 'Mymodule_Test/js/jquery.flexslider-min'],function($, flexslider){
(function() {
$(window).load(function () {
$('.flexslider').flexslider();
});
})(jQuery);
});
file sedang dimuat.
Saya juga membersihkan cache, tema saya benar, saya menjalankan perintah:
php bin/magento setup:static-content:deploy
Jadi, saya tidak bisa mencari tahu mengapa requirejs-config.js saya tidak dimuat. Saya mengikuti dokumentasi juga.
Tolong bantu
Jawaban:
Saya menemukan masalahnya.
Di bawah pub / static / _requirejs / frontend / Namespace / Theme / en_US , hapus file yang diperlukanejs-config.js .
Refresh halaman Anda dan itu akan dihasilkan lagi dengan konten baru.
Jika tidak berfungsi, hapus requireejs-config.js dan jalankan perintah berikut:
sumber
Masalahnya adalah Anda tidak mengaktifkan mode pengembang. Akibatnya, cache file ada di
pub/static
folder.sumber
Setelah Menyebarkan perintah, Anda harus mengatur mode pengembang dan menghapus cache. Ini bekerja dengan baik.
Bersihkan juga cache browser untuk melihat efeknya.
sumber
Ini dapat membantu orang lain dengan masalah yang sangat mirip pada nginx lokal. Blok / static tidak menulis ulang dengan benar dan ini perlu ditambahkan per komentar ini https://github.com/magento/magento2/issues/7869#issuecomment-268585438
sumber
Pastikan
.htacess
file ada dipub/static
folder. dan kemudian menerapkan perintah deploy.sumber
Anda dapat mengikuti langkah-langkah di bawah ini dan itu akan diperbaiki.
1) Atur mode penyebaran ke produksi - php magento deploy: mode: atur produksi (js dan css minification akan bekerja dengan mode produksi. Jika Anda dalam mode pengembang dengan kode yang diperkecil masalah di atas akan muncul seperti yang saya alami. Jika minifikasi menonaktifkan Anda dapat mempertahankan mode pengembang. Juga pastikan menggunakan echo the print_r ($ _ SERVER) di index.php yang mode produksi atau mode pengembang diatur dengan benar sebelum memuat situs web)
2) Hapus semua pengaturan cache di server
3) Bersihkan cache browser dan lihat dalam mode penyamaran. Itu dia!
Bersulang!
sumber