Modelul de meniu cară optsprezece adrese moarte pe care nu le randează nimeni
frontend/src/data/navigation.ts cară un model de meniu care nu se randează
nicăieri și ale cărui optsprezece adrese răspund toate 404. Nu se vede pe site
și nu strică nimic azi: pleacă în pachetul pe care îl descarcă vizitatorul și
stă acolo ca o invitație pentru cine îl va randa într-o zi.
Ce am găsit
const shopMenu: NavColumn[] (navigation.ts:84) nu e exportat și ajunge în
interfață doar ca primaryNav[0].menu (:145). Header.tsx citește .menu
strict ca valoare de adevăr (:93, :195, :199, :201, :202, :326) și
randează în locul lui filteredShopMega / therapyMega / exploreMega
(:329-334). MobileDrawer.tsx importă doar shopMega, therapyMega și
exploreMega. Niciun <a> nu se naște din shopMenu.
Cele optsprezece adrese, toate 404 pe producție, verificate:
/shop/percussion, /shop/air-compression, /shop/contrast, /shop/heat,
/shop/vibration, /shop/rollers, /shop/goal/warm-up, /shop/goal/recover,
/shop/goal/sleep, /shop/goal/mobility, /therapy/percussion,
/therapy/compression, /therapy/thermal, /therapy/vibration,
/learn/science, /learn/routines, /learn/athletes.
Tipul NavColumn promite în comentariu (:26) că menu, când e prezent,
deschide un mega-meniu. Cine se ia după comentariu și randează shopMenu
publică optsprezece linkuri moarte dintr-o singură mișcare.
Încă un loc, aceeași clasă
backend/prisma/seed.ts:501 — bannerul „Summer training starts now" are
buttonHref: '/therapy', iar /therapy singur nu are rută și răspunde 404.
Pe producție bannerul a fost editat din panou și butonul duce azi la
/collections/shop-all, deci nu se vede. Rămâne totuși valoarea implicită din
seed: dacă rândul se recreează vreodată, butonul principal al primei pagini duce
la 404.
De făcut
-
Șterg shopMenușimenude pe intrarea Shop dinprimaryNav, dacă nimic nu-l randează după verificare -
Corectez buttonHrefdinseed.ts:501la o adresă care există -
npm run lint && npm run buildînfrontend/,npm run buildînbackend/
Criteriu de acceptare
Nicio adresă fără rută nu mai e scrisă în modelul de navigare, iar pachetul livrat vizitatorului nu mai conține cele optsprezece șiruri.
Găsit la auditul de linkuri interne din #51 (closed).