Scriptul nu se încarcă din cauza unei erori de tip MIME javascript
Încerc să folosesc plugin-ul jQuery Masonry pe un site. Am actualizat fișierele template pentru a avea clasele corecte acolo unde are nevoie plugin-ul. Apoi am încărcat scripturile mele astfel:
function masonry_scripts() {
wp_enqueue_script('masonry');
wp_enqueue_script( 'masonry-script', get_template_directory_uri() . '/assets/js/masonry-script.js', array(), false, true );
}
add_action( 'wp_enqueue_scripts', 'masonry_scripts' );
Scriptul masonry se încarcă corect, dar fișierul masonry-script.js nu. Primesc următoarea eroare în consolă:
Scriptul din ".../assets/js/masonry-script.js?ver=5.1.1" a fost încărcat deși tipul său MIME ("text/html") nu este un tip MIME JavaScript valid.[Află mai multe] Încărcarea a eșuat pentru sursa "http://thewallmarket.local/wp-content/themes/storefront/assets/js/masonry-script.js?ver=5.1.1".
Din păcate, nu pot furniza un link către site deoarece este dezvoltat local.
Ce cauzează această problemă? Cum o pot rezolva?
Acest eroare înseamnă că resursa (în acest caz fișierul JS) pe care o încărcați este așteptată să fie JS și este în schimb HTML. Poate fi din cauza că calea este incorectă sau pentru că fișierul local nu este JS.
Cel mai probabil, scriptul furnizat la /assets/js/masonry-script.js
nu este un fișier JS sau nu a putut fi încărcat ca atare. Se pare că ați putea primi o eroare de Fișier Negăsit (cu o redirecționare către pagina 404).
Încercați aceasta între cele două linii wp_enqueue_script()
:
printf(get_template_directory_uri() . '/assets/js/masonry-script.js');
Aceasta ar trebui să afișeze calea completă către fișierul pe care încercați să-l încărcați. Verificați dacă puteți accesa URL-ul afișat într-un tab (sau fereastră) separat al browserului. S-ar putea să fie nevoie să ajustați URL-ul astfel:
wp_enqueue_script('masonry-script', untrailingslashit(get_template_directory_uri() . '/assets/js/masonry-script.js', [], false, true);
De asemenea, verificați conținutul fișierului local pentru a vedea dacă conține într-adevăr JS. Dacă nu, poate fi necesar să descărcați o copie corectă.
Dacă cerințele proiectului dvs. permit și este disponibil, puteți lua în considerare utilizarea jQuery Masonry de la un CDN.
Actualizat: temă părinte vs. temă copil
Conform comentariului din documentația WP pentru get_template_directory_uri()
, dacă doriți URL-ul temei copil în loc de tema părinte, utilizați get_stylesheet_directory_uri()
în schimb.

Mulțumesc pentru răspuns. Fișierul este un fișier js, iar calea către el este corectă. Dar folosind trucul tău, mi-am dat seama că calea care se afișează este pentru tema părinte, nu pentru tema copil. Și, desigur, vreau să ajung la tema copil.
Presupun că problema provine de la get_template_uri(). Nu cred că utilizarea căii absolute către fișier ar fi modalitatea corectă de a remedia acest lucru, dar nu știu ce să fac aici. Știi cumva ce ar trebui să fac?
