|
1 | | -import { cityData } from "@/data/cities"; |
2 | | -export const dynamic = 'force-static'; // Añadir esta línea |
3 | | -export const revalidate = 3600 |
| 1 | +import cityData from "@/data/cities"; |
| 2 | + |
| 3 | +export const dynamic = 'force-static'; |
| 4 | +export const revalidate = 3600; |
4 | 5 |
|
5 | 6 | export async function GET() { |
6 | | - const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || "https://pyday.vercel.app"; |
| 7 | + const baseUrl = (process.env.NEXT_PUBLIC_SITE_URL || "https://pyday.vercel.app").replace(/\/$/, ''); |
| 8 | + |
| 9 | + // Validación de datos |
| 10 | + if (!cityData || typeof cityData !== 'object') { |
| 11 | + throw new Error('Datos de ciudades no encontrados'); |
| 12 | + } |
7 | 13 |
|
8 | 14 | // Generar URLs |
9 | 15 | const urls = [ |
10 | 16 | ...['', '/multimedia', '/previous-editions', '/register', '/sponsors'] |
11 | 17 | .map(path => ({ |
12 | | - url: `${baseUrl}${path}`, |
| 18 | + url: new URL(path, baseUrl).href, |
13 | 19 | lastModified: new Date().toISOString(), |
14 | 20 | priority: path === '' ? 1.0 : 0.8, |
15 | 21 | })), |
16 | 22 | ...Object.keys(cityData).map(citySlug => ({ |
17 | | - url: `${baseUrl}/${citySlug}`, |
| 23 | + url: new URL(`/${citySlug}`, baseUrl).href, |
18 | 24 | lastModified: new Date().toISOString(), |
19 | 25 | priority: 0.9, |
20 | 26 | })) |
21 | 27 | ]; |
22 | 28 |
|
| 29 | + |
23 | 30 | // Generar XML |
24 | 31 | const xml = `<?xml version="1.0" encoding="UTF-8"?> |
25 | 32 | <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> |
|
0 commit comments