2015-12-26 25 views
7

Sono nuovo di Magento2 e sto cercando di capire come funziona RequireJS in Magento.Magento2 non sta leggendo il mio requirejs-config.js

Ecco la mia situazione:

Ho seguente modulo:

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

Ecco il contenuto di questo file:

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

Il mio tema è in questa posizione:

app/design/frontend/Mycompany/Basic 

miei Javascripts sono al seguente indirizzo:

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 

Nel file PHTML:

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

ho aggiunto le righe:

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

Quando controllo la mia pagina nel browser, ricevo 404 errore con percorsi:

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

Ma se cambio la linea richiedere [] a questo:

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

i file da caricare.

Ho anche eliminato la cache, il mio tema è corretta, ho eseguito il comando:

php bin/magento setup:static-content:deploy 

Quindi, io non sono in grado di capire il motivo per cui il mio requirejs-config.js non viene caricato. Ho seguito anche la documentazione.

risposta

10

Ho trovato il problema.

Sotto pub/static/_requirejs/frontend/Namespace/a tema/en_US, eliminare il file requirejs-config.js.

Aggiorna la pagina e verrà generata di nuovo con nuovi contenuti.

+0

grazie. per me è stato messo in cache da chrome –

+0

Hai salvato la mia giornata !!! –

0

Ciò può aiutare qualcun altro con un problema molto simile in locale con nginx. Il blocco/statico non è stato riscrivendo correttamente e questo doveva essere aggiunto per questo commento 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"; 
}