The breadcrumb's trailing span pulls its label from pageBreadcrumbTitle, which pages set in script setup after a useFetch. SSR rendered the URL slug there; client rendered the title; Vue logged a hydration text mismatch on every detail page. Wrap the last segment's span in ClientOnly with an nbsp fallback so the SSR DOM stays the same shape but defers the text to the client. The prior attempt at this in layouts/default.vue + layouts/admin.vue was reverted on this branch — it changed segment counts and produced a worse node-structure mismatch. |
||
|---|---|---|
| .. | ||
| assets | ||
| components | ||
| composables | ||
| config | ||
| layouts | ||
| middleware | ||
| pages | ||
| plugins | ||
| utils | ||
| app.config.ts | ||
| app.vue | ||