You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aki elírja a slugot, vagy egy régi, átnevezett linkre érkezik (a slug módosítható az adminban, tehát ez rendszeresen elő fog fordulni), az egy zsákutcát kap. Pedig a szerver pontosan tudja, milyen slugok léteznek: a PublicRouteIndex teljes slug-listája ott van a memóriában/Redisben, ez alapján dől el a 404-es státusz is.
Mellékesen a NotFoundView kommentje elavult — azt írja, hogy a szerver 200-at ad kiterjesztés nélküli útvonalra, holott a MapSpaFallback óta valódi 404 megy ki:
// noindex because the server still answers 200 for extension-less paths: an SPA cannot// set a status code, so the robots tag is what keeps a mistyped URL out of the index.
Javaslat
Javaslatok a 404 oldalon: a legközelebbi létező slugok ugyanabban a szekcióban (Levenshtein-távolság vagy közös prefix), plusz a legutóbbi néhány munka linkje mint kilépési pont.
2A. Kliensoldali változat: a content store amúgy is betölti az összes tartalmat, tehát a javaslat a meglévő listákból kiszámolható, backend nélkül. Ez az egyszerűbb út.
2B. Szerveroldali változat: a SpaShell a 404-es ágon beír egy javaslat-listát a HTML-be a PublicRouteIndex-ből — akkor is látszik, ha a JS nem fut, de több munka. A Perf: edge-cache-elt HTML (s-maxage + Cloudflare purge) #58 (edge-cache) miatt figyelni kell rá, hogy a 404-es ág no-store marad.
Ha a slug-átnevezés gyakori, érdemesebb a gyökérnél megfogni: slug-előzmény tábla (SlugAlias: régi slug, entitás, új slug), és a MapSpaFallback 301-et ad a régi slugról az újra. Ez SEO-szempontból többet ér, mint bármilyen 404-es javaslat, mert a link értéke megmarad. Érdemes ugyanebben az issue-ban dönteni a kettő között.
A NotFoundView elavult kommentjének javítása, és a robots tag megtartása (a szkriptet futtató crawler második vonala).
Jelenség
A 404 oldal statikus: egy
DetailNavés egyStatusPanel, semmi útmutatás.Aki elírja a slugot, vagy egy régi, átnevezett linkre érkezik (a slug módosítható az adminban, tehát ez rendszeresen elő fog fordulni), az egy zsákutcát kap. Pedig a szerver pontosan tudja, milyen slugok léteznek: a
PublicRouteIndexteljes slug-listája ott van a memóriában/Redisben, ez alapján dől el a 404-es státusz is.Mellékesen a
NotFoundViewkommentje elavult — azt írja, hogy a szerver 200-at ad kiterjesztés nélküli útvonalra, holott aMapSpaFallbackóta valódi 404 megy ki:Javaslat
2A. Kliensoldali változat: a
contentstore amúgy is betölti az összes tartalmat, tehát a javaslat a meglévő listákból kiszámolható, backend nélkül. Ez az egyszerűbb út.2B. Szerveroldali változat: a
SpaShella 404-es ágon beír egy javaslat-listát a HTML-be aPublicRouteIndex-ből — akkor is látszik, ha a JS nem fut, de több munka. A Perf: edge-cache-elt HTML (s-maxage + Cloudflare purge) #58 (edge-cache) miatt figyelni kell rá, hogy a 404-es ágno-storemarad.SlugAlias: régi slug, entitás, új slug), és aMapSpaFallback301-et ad a régi slugról az újra. Ez SEO-szempontból többet ér, mint bármilyen 404-es javaslat, mert a link értéke megmarad. Érdemes ugyanebben az issue-ban dönteni a kettő között.NotFoundViewelavult kommentjének javítása, és arobotstag megtartása (a szkriptet futtató crawler második vonala).Érintett fájlok
portfoliocms.client/src/views/NotFoundView.vue,src/components/common/StatusPanel.vueportfoliocms.shared/stores/content.ts(ha kliensoldali javaslat)PortfolioCMS.Core/Extensions/SpaFallbackExtensions.cs,PortfolioCMS.Core/Services/PublicRouteIndex.cs(ha szerveroldali vagy slug-alias)PortfolioCMS.Core/Models/SlugAlias.cs+ migráció (ha a 3. pont)PortfolioCMS.Tests/SpaFallbackTests.cs