Nem töltődik be az animáció
A canvas üres. Az animáció soha nem jelenik meg. A konzolon lehet, hogy van hiba — lehet, hogy nincs.
Akkor használd, ha
- A
<canvas>ott van a DOM-ban, de nem renderelődik semmi. - Az
onLoadErrorelsül. - A DevTools konzol 404, CORS, WASM vagy CSP üzenetet ír.
Mire lesz szükséged
- Nyitott DevTools (Console + Network fül).
- A pontos URL, amit a kódod használ a
.riv-hez. - A Lupiantól kapott
handoff.md.
Menj végig ezeken sorrendben
1. Elérhető-e a .riv URL?
DevTools → Network fül, frissítsd az oldalt, és keresd meg a .riv kérést.
- 200-as státusz → a fájlt kiszolgálják. Menj a 2. lépésre.
- 404-es státusz → rossz útvonal. Javítsd a
srcértéket. Figyelj ezekre:- Vezető perjel megléte (
/animations/hero.rivvsanimations/hero.riv). - Fájlnév-elgépelés / kis-nagybetű különbség (Linux/macOS hostokon érzékeny).
- A
public/fájlok a gyökérből szolgálódnak, nem/public/-ról.
- Vezető perjel megléte (
- 403-as státusz → jogosultsági probléma a hoston (privát bucket, hiányzó role, lejárt signed URL).
- Nincs is kérés → a JS már a
new Rive(...)hívás előtt hibára futott. Nézd meg a konzolt.
2. Megvannak a CORS fejlécek?
Ha a .riv más originen van, mint az oldal:
- Keresd az
Access-Control-Allow-Originválaszfejlécet (Network → kattints a.rivkérésre → Headers). - A konzolon „blocked by CORS policy” üzenet megerősíti.
Javítás: állíts be CORS-t a .riv-et kiszolgáló hoston. Host-specifikus útmutató: Fájlok hostolása & CORS.
3. Engedélyezett-e a WASM a CSP-ben?
Ha az oldal Content Security Policy fejlécet küld:
- A konzolhiba
wasm-ot,WebAssembly.instantiate-et vagyunsafe-eval-t említ.
Javítás: tedd be a 'wasm-unsafe-eval'-t a script-src-be:
script-src 'self' 'wasm-unsafe-eval';4. Töltődik a runtime csomag?
- Konzolhiba
Failed to fetchtípusú, egy@rive-app/...URL-re → CDN/hálózati probléma, vagy elgépelt import URL. esm.sh-t használsz, az oldal viszont szigorú offline / intranetes környezetben van → a CDN nem érhető el. Hostold magad a runtime-ot, vagy térj át npm-re.
5. Elsül az onLoadError?
Ha még nincs handlered, tegyél be:
js
new Rive({
src: "/animations/hero.riv",
canvas,
autoplay: true,
stateMachines: "State Machine 1",
onLoad: () => console.log("Rive loaded OK"),
onLoadError: (err) => console.error("Rive load error:", err),
});Gyakori onLoadError okok:
- Sérült
.riv— töltsd le újra a kapott handoff-ból. - Manuálisan állítottad a
canvas.width/canvas.heightértékét — ez resetelte a renderelési kontextust. Vedd ki a<canvas width="..." height="...">attribútumokat, és CSS-sel méretezd. - Rossz csomag a fájlhoz — a
canvas-litenem tudja betölteni azokat a.rivfájlokat, amelyek szöveget, audiot vagy scriptinget használnak. Válts@rive-app/webgl2-re.
6. Tényleg a DOM-ban van a canvas a megfelelő pillanatban?
- React: a
getElementById-t szerverkomponensből vagy a canvas mount előtt hívod? - Framer: a szerkesztő-canvas (
RenderTarget.canvas) nem ismeri a WebGL-t — lásd: Framer recept. - SSR keretrendszerek: a runtime kliensoldalon fut. Használj
"use client"-et vagydynamic(..., { ssr: false })-t.
7. Próbáld ki demo.lupian.studio-n
Ha a .riv fájl megy a demo.lupian.studio-on, akkor a fájllal nincs gond. A baj a környezetedben van (hosting, CSP, csomag).
Gyakori hibák
<canvas width="500" height="500">a HTML-ben. Vedd ki az attribútumokat — resetelik a renderelési kontextust. CSS-sel méretezz.srcegy Google Drive / Dropbox megosztási URL-re mutat. Ezek HTML-t adnak vissza, nem a bináris.riv-et. Tedd a fájlt valódi statikus originre.- A
.rivURL böngészőtabon megy, az oldalon belül elszáll. Ez CORS. Javítsd a válaszfejléceket. - A
useRivenullmarad, sosem frissül. Tedd a komponens fájl tetejére, hogy"use client"(Next App Router), vagy importáld dinamikusanssr: false-szal.
Ha elakadsz, ezt küldd a Lupiannak
- A pontos
.rivURL-t. - Képeket a Network fülről (a
.rivsorát a Headers-szel együtt) és a konzolról. - A használt keretrendszert.
- A teljes lista: Kérj segítséget a Lupiantól.

