Pereiti prie turinio
← Visos PrestaShop 9 klaidos

PrestaShop 9 klaidos

jquery-1.11.0.min.js 404 ir „$ is not defined“ atnaujinus į PrestaShop 9

PrestaShop 9 aplanke js/jquery palieka tik jQuery 3.7.1. Moduliai ir temos, kurie senesnį failą įkelia pagal kelią, gauna 404, o visi nuo jo priklausantys skriptai sustoja su „$ is not defined“.

Klaida
GET /js/jquery/jquery-1.11.0.min.js 404 (Not Found)
Pašalinta
PrestaShop 9.0
Dažniausiai randama
Temos, senesni moduliai

Kas nutiko

Anksčiau PrestaShop js/jquery/ aplanke turėjo kelias jQuery versijas, o kai kurie moduliai ir temos įkeldavo vieną jų pagal tikslų failo vardą. PrestaShop 9 palieka tik jquery-3.7.1.min.js ir jquery-migrate-3.4.0.min.js. Keliai į jquery-1.11.0, jquery-3.4.1, jquery-3.5.1, jquery-migrate-1.2.1 ar jquery-migrate-3.1.0 dabar grąžina 404.

Pati 404 klaida nekenksminga. Bėdos prasideda po jos: skriptai, kurie tikėjosi jQuery, sustoja su $ is not defined ar jQuery is not defined, o kartu su jais – slankikliai, iššokantys langai, prekių pasirinkimai ar administravimo formos.

Pagalbinė funkcija Media::getJqueryPath(), kuria kai kurie moduliai ieškodavo failo, pašalinta dar PrestaShop 8.0.

Sprendimas

Neįkelkite jQuery patys:

  • Administravime: PrestaShop 9 jau įkelia jQuery 3.7.1 kiekviename puslapyje. Pašalinkite modulio addJS() su senu failu.
  • Parduotuvėje: jQuery ateina su tema (Classic jį turi savo pagrindiniame JavaScript faile). Prieš pridėdami kitą kopiją, patikrinkite, ką duoda jūsų tema, ir niekada neįkelkite antros jQuery ant viršaus: prie pirmosios prijungti įskiepiai dingsta.
  • Seni įskiepiai: jQuery 1.x skirtas kodas gali naudoti 3.x pašalintus metodus, tokius kaip .live(), .size() ar .load(fn). Kuriuos – parodys naršyklės konsolė. jquery-migrate dalį jų laikinai grąžina, bet tikras sprendimas – atnaujinti kodą.
// Buvo
$this->context->controller->addJS(_PS_JS_DIR_ . 'jquery/jquery-1.11.0.min.js');
$this->context->controller->addJS(Media::getJqueryPath());

// Dabar: nieko, jQuery jau yra puslapyje

Kur dar slepiasi

grep -rn "jquery-1\.\|jquery-3\.[45]\|jquery-migrate-\|getJqueryPath" modules/ themes/ override/

Peržiūrėkite ir temos head.tpl bei maketo šablonus: ranka įrašytos <script> žymos ten dažnos.

Raskite visas tokias vietas prieš atnaujindami

Kur yra vienas pašalintas kvietimas, paprastai yra ir daugiau. Mūsų nemokama PrestaShop 9 parengties patikra perskaito visų modulių, temos ir override failų kodą ir parodo kiekvieną problemą su failu ir eilute. Ji tik skaito, nieko nekeičia.

Gauti nemokamą patikrą

Nenorite taisyti patys? Parduotuves į PrestaShop 9 atnaujiname už fiksuotą kainą. Apie atnaujinimą