@zalkera/client 0.22.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/llms.txt +11 -1
- package/package.json +1 -1
package/llms.txt
CHANGED
|
@@ -486,8 +486,18 @@ export const pageSlugs = (): string[] => Object.keys(pages); // sitemap·gener
|
|
|
486
486
|
export const dynamic = "force-static";
|
|
487
487
|
export function generateStaticParams() { return pageSlugs().map((slug) => ({ slug })); }
|
|
488
488
|
|
|
489
|
+
/** 세그먼트를 사람이 쓴 값으로. 못 되돌리면 원문을 그대로 준다(주소창에 아무거나 쳐도 500 이 안 나게). */
|
|
490
|
+
const routeParam = (raw: string) => { try { return decodeURIComponent(raw); } catch { return raw; } };
|
|
491
|
+
|
|
489
492
|
export default async function StaticPage({ params }: { params: Promise<{ slug: string }> }) {
|
|
490
|
-
|
|
493
|
+
// ⚠ `params` 가 주는 값은 **퍼센트 인코딩된 원문**이다. `generateStaticParams` 는 디코드된 값
|
|
494
|
+
// (`회사연혁`)을 돌려주는데 이 컴포넌트는 `%ED%9A%8C...` 를 받는다. 그대로 조회하면 miss 해서
|
|
495
|
+
// `notFound()` 로 떨어지고, sitemap 은 디코드된 URL 로 **그 404 를 크롤러에 광고**한다.
|
|
496
|
+
// ASCII slug 는 인코딩이 항등이라 이 결함이 안 보인다 — 한국어 사이트에서는 기본값이다.
|
|
497
|
+
// `generateMetadata` 도 params 를 **따로** 읽으므로 거기서도 같이 풀어야 한다(한 곳만 고치면
|
|
498
|
+
// 제목은 나오는데 본문이 404 인 형상이 된다).
|
|
499
|
+
const { slug: rawSlug } = await params;
|
|
500
|
+
const slug = routeParam(rawSlug);
|
|
491
501
|
const page = loadPageContent(slug);
|
|
492
502
|
if (!page) notFound();
|
|
493
503
|
if (slug === "home") redirect("/"); // 홈의 정본 주소는 루트다(같은 내용이 두 URL 로 색인되면 손해)
|