File tree Expand file tree Collapse file tree 2 files changed +47
-61
lines changed
Expand file tree Collapse file tree 2 files changed +47
-61
lines changed Original file line number Diff line number Diff line change 1- export { default } from '@/views/resort-detail/ui/resort-detail-page' ;
1+ import type { Metadata } from 'next' ;
2+
3+ import { ResortData } from '@/entities/resort' ;
4+ import ResortDetailPage from '@/views/resort-detail/ui/resort-detail-page' ;
5+
6+ export async function generateMetadata ( {
7+ params,
8+ } : {
9+ params : { resortId : string } ;
10+ } ) : Promise < Metadata > {
11+ const resortId = params ?. resortId ;
12+ const resort = ResortData . find ( ( resort ) => resort . id === + resortId ) ;
13+
14+ return {
15+ title : resort ? `${ resort . name } - WeSki` : 'WeSki : 스키장 혼잡도 확인 서비스' ,
16+ description : resort
17+ ? `${ resort . name } 의 실시간 정보를 확인해보세요.`
18+ : '위스키는 웹캠, 날씨, 슬로프 등 실시간 스키장 정보를 탐색할 수 있는 스키장 큐레이션 서비스입니다.' ,
19+ alternates : {
20+ canonical : `/${ resortId } ` ,
21+ } ,
22+ openGraph : {
23+ images : [
24+ {
25+ url : '/assets/og.png' ,
26+ alt : 'WeSki' ,
27+ } ,
28+ ] ,
29+ } ,
30+ } ;
31+ }
32+
33+ export default ResortDetailPage ;
Original file line number Diff line number Diff line change @@ -2,75 +2,29 @@ import '@/app/globals.css';
22
33import type { Metadata } from 'next' ;
44
5- import { ResortData } from '@/entities/resort' ;
65import KakaoScript from '@/shared/lib/kakao-script' ;
76import { Toaster } from '@/shared/ui/toaster' ;
87
98import Providers from './_providers' ;
109
11- export async function generateMetadata ( { params } : { params : { id : string } } ) : Promise < Metadata > {
12- const id = params ?. id ;
13- const resort = ResortData . find ( ( resort ) => resort . id === + id ) ;
14-
15- return {
16- title : resort ? `${ resort . name } - WeSki` : 'WeSki : 스키장 혼잡도 확인 서비스' ,
17- description : resort
18- ? `${ resort . name } 의 실시간 정보를 확인해보세요.`
19- : '위스키는 웹캠, 날씨, 슬로프 등 실시간 스키장 정보를 탐색할 수 있는 스키장 큐레이션 서비스입니다.' ,
20- keywords : [
21- '스키장 웹캠' ,
22- '스키장 날씨' ,
23- '스키장 설질' ,
24- '스키장 웹캠' ,
25- '강원도 날씨' ,
26- '원주 스키장' ,
27- '강원도 스키장' ,
28- '서울근교 스키장' ,
29- '스키장 데이트' ,
30- '웰리힐리' ,
31- '하이원' ,
32- '휘닉스파크' ,
33- '휘팍' ,
34- '용평 스키장' ,
35- '모나' ,
36- '알펜시아' ,
37- '비발디파크' ,
38- '비발디' ,
39- '무주 스키장' ,
40- '무주 덕유산' ,
41- '오투리조트' ,
42- '지산리조트' ,
43- '곤지암' ,
44- '곤지암리조트' ,
45- '곤지암스키장' ,
46- '오크벨리' ,
47- '에덴벨리' ,
48- '강원도 설질' ,
49- '강원도 날씨' ,
50- '엘리시안' ,
51- '엘리사안 강촌' ,
52- '스키장 폐장일' ,
53- '스노우보드' ,
54- '스키' ,
55- '숏스키' ,
56- '스키장' ,
57- '썰매' ,
58- '겨울데이트' ,
10+ export const metadata : Metadata = {
11+ metadataBase : new URL ( process . env . NEXT_PUBLIC_SITE_URL || 'https://www.weski.live' ) ,
12+ title : 'WeSki : 스키장 혼잡도 확인 서비스' ,
13+ description :
14+ '위스키는 웹캠, 날씨, 슬로프 등 실시간 스키장 정보를 탐색할 수 있는 스키장 큐레이션 서비스입니다.' ,
15+ openGraph : {
16+ images : [
17+ {
18+ url : '/assets/og.png' ,
19+ alt : 'WeSki' ,
20+ } ,
5921 ] ,
60- openGraph : {
61- images : [
62- {
63- url : '/assets/og.png' ,
64- alt : 'WeSki' ,
65- } ,
66- ] ,
67- } ,
68- } ;
69- }
22+ } ,
23+ } ;
7024
7125export default function RootLayout ( { children } : { children : React . ReactNode } ) {
7226 return (
73- < html lang = "en " >
27+ < html lang = "ko " >
7428 < body >
7529 < Providers > { children } </ Providers >
7630 < Toaster position = "bottom-center" />
You can’t perform that action at this time.
0 commit comments