Magento2 requirjs-config.js okumuyor


17

Merhaba, Magento2'de yeniyim ve RequireJS'nin Magento'da nasıl çalıştığını anlamaya çalışıyorum.

İşte benim durumum:

Aşağıdaki modül var:

app/code/Mymodule/Test/view/frontend/requirejs-config.js

Bu dosyanın içeriği:

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'
    }
}
};

Temam şu konumda:

app/design/frontend/Mycompany/Basic

Javascriptlerim şu konumda:

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 dosyasında:

app/code/Mymodule/Test/view/frontend/templates/home.phtml

Çizgileri ekledim:

require(['jqueryNoConflict', 'flexslider'],function($, flexslider){
    (function($) {
        $(window).load(function () {
            $('.flexslider').flexslider();
        });
    })(jQuery);
});

Sayfamı tarayıcıda kontrol ettiğimde, yollarda 404 hatası alıyorum:

http://mag2.com.local/pub/static/frontend/Mycompany/Basic/en_US/flexslider.js

Ama eğer [] satırını buna değiştirirsem:

 require(['Mymodule_Test/js/jquery.no-conflict', 'Mymodule_Test/js/jquery.flexslider-min'],function($, flexslider){
        (function() {
            $(window).load(function () {
                $('.flexslider').flexslider();
            });
        })(jQuery);
    });

dosyalar yükleniyor.

Ayrıca önbelleği temizledim, temam doğru, komutu çalıştırdım:

php bin/magento setup:static-content:deploy

Bu nedenle, requirjs-config.js dosyamın neden yüklenmediğini anlayamıyorum. Belgeleri de takip ettim.

Lütfen yardım et


Modülle ilgili olmayan tüm sayfalarda bazı özel js dosyaları kullanmak isterseniz ne olur? Bunu yapmanın doğru yolu nedir? Lütfen beni Magento resmi sayfasına gönderme.
Anitr

Yanıtlar:


27

Sorunu buldum.

Altında pub / static / _requirejs / kullanıcı arayüzü / Namespace / Tema / tr , dosyayı silmek requirejs-config.js .

Sayfanızı yenileyin, yeni içerikle yeniden oluşturulur.

Çalışmazsa requirjs-config.js dosyasını silin ve aşağıdaki komutları çalıştırın:

php bin/magento cache:clean
php bin/magento cache:flush
php bin/magento setup:upgrade
php bin/magento setup:di:compile

Prototype.js eklemek mümkün mü?
Slimshadddyyy

Teşekkür ederim .. Benim için çalışıyor .. :) Benden +1
Prashant Patil

11

Sorun geliştirici modunu etkinleştirmemiş olmanızdır. Sonuç olarak, dosya önbelleği pub/staticklasörde bulunur.


7
Geliştirici modunu etkinleştirmek için CLI php bin / magento konuşlandırmasında
Bhupendra Jadeja

6

Dağıt komutundan sonra, geliştirici modunu ayarlamanız ve önbelleği temizlemeniz gerekir. İyi çalışıyor.

php bin/magento deploy:mode:set developer && php bin/magento cache:clean

Ayrıca efekti görmek için tarayıcı önbelleğini temizleyin.


1

Bu, nginx ile yerel olarak çok benzer bir sorunu olan başka birine yardımcı olabilir. / Static bloğu doğru şekilde yeniden yazılmamıştı ve bu yoruma göre bunun eklenmesi gerekiyor https://github.com/magento/magento2/issues/7869#issuecomment-268585438

location /static/ {
    if ($MAGE_MODE = "production") {
      expires max;
    }

    # Remove signature of the static files that is used to overcome the browser cache
    location ~ ^/static/version {
      rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
      add_header Cache-Control "public";
      add_header X-Frame-Options "SAMEORIGIN";
      expires +1y;

      if (!-f $request_filename) {
        rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
      }
    }

    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
      add_header Cache-Control "no-store";
      add_header X-Frame-Options "SAMEORIGIN";
      expires off;

      if (!-f $request_filename) {
         rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
      }
    }

    if (!-f $request_filename) {
      rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
    }

    add_header X-Frame-Options "SAMEORIGIN";
}

0

Lütfen .htacessdosyanın pub/staticklasörde bulunduğundan emin olun . ve ardından deploy komutunu uygulayın.


-1

Aşağıdaki adımları takip edebilirsiniz ve düzeltilecektir.

1) Konuşlandırma modunu üretime ayarlayın - php magento Konuşlandırma: mod: Üretimi ayarla (js ve css minification üretim moduyla çalışır. Ayrıca web sitesini yüklemeden önce üretim modunun veya geliştirici modunun doğru ayarlanmış olduğu index.php'de print_r ($ _ SERVER) echo kullanarak doğrulayın.

2) Sunucudaki tüm önbellek kurulumlarını temizleyin

  • /etc/init.d/nginx yeniden başlatma
  • /etc/init.d/php5.6-fpm yeniden başlatma
  • /etc/init.d/varnish yeniden başlatma

3) Tarayıcı önbelleğini temizleyin ve gizli modda görüntüleyin. Bu kadar!

Şerefe!


OP, Apache veya Nginx'in kullanılıp kullanılmadığından bahsetmez. Apache olduğunu varsaymak neredeyse güvenlidir.
Chris K
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.