diff --git a/data/pricing.json b/data/pricing.json index 6f1b659..6d1004c 100644 --- a/data/pricing.json +++ b/data/pricing.json @@ -82,7 +82,7 @@ "每期仅限8组家庭", "含爸妈托管时段" ], - "url": "/products/summer-camp" + "url": "/summer-camp" }, { "id": "autumn", diff --git a/nuxt.config.js b/nuxt.config.js index acec125..1576f84 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -7,17 +7,15 @@ export default defineNuxtConfig({ // 部署时使用 `nuxt build` + Node.js 服务器(如 PM2)。 // 若必须静态部署,需将表单改为第三方服务(飞书/EmailJS 等)。 prerender: { + failOnError: false, crawlLinks: true, routes: [ '/', '/about', '/products', '/summer-camp', '/winter-camp', '/courses', '/guides', '/guide-custom', '/faq', '/reviews', '/contact', '/customize', '/pricing', '/selector', '/sitemap.xml', - '/products/v9-4d3n', '/products/v9-5d4n', '/products/v9-6d5n-family', - '/products/v9-6d5n-comfort', '/products/v9-7d6n-family', '/products/v9-7d6n-wild', + '/products/v9-5d4n-forest', '/products/v9-5d4n-prairie', + '/products/v9-6d5n-family', '/products/v9-6d5n-explore', + '/products/v9-7d6n-family', '/products/v9-7d6n-wild', '/products/autumn', '/products/winter', - '/gallery', - '/gallery', - '/news', '/calendar', - - '/stories', + '/gallery', '/news', '/calendar', '/stories', '/blog', '/blog/hulunbuir-travel-guide-2026', '/blog/hulunbuir-family-travel-guide', @@ -30,28 +28,8 @@ export default defineNuxtConfig({ '/destinations', '/destinations/moriguole', '/destinations/eergunashire', '/destinations/baihualin', '/destinations/enhe-shiwei', '/destinations/heishantou', '/destinations/manzhouli', - '/destinations/hulunhu', '/destinations/aershan', '/destinations/shiwei', + '/destinations/hulunhu', '/destinations/aershan', '/destinations/daxinganling', '/destinations/aoluguya', '/destinations/genhe', - '/products/autumn', '/products/winter', - '/products/autumn', '/products/winter', - '/products/autumn', '/products/winter', - '/destinations', - '/destinations/moriguole', '/destinations/eergunashire', '/destinations/baihualin', - '/destinations/enhe-shiwei', '/destinations/heishantou', '/destinations/manzhouli', - '/destinations/hulunhu', '/destinations/aershan', '/destinations/shiwei', - '/destinations/daxinganling', '/destinations/aoluguya', '/destinations/genhe', - '/gallery', - '/news', '/calendar', - '/stories', - '/blog', - '/blog/hulunbuir-travel-guide-2026', - '/blog/hulunbuir-family-travel-guide', - '/blog/hulunbuir-best-month-to-visit', - '/blog/hulunbuir-self-drive-vs-chartered-bus', - '/blog/hulunbuir-travel-cost-breakdown', - '/blog/hulunbuir-travel-with-toddlers-4-6', - '/blog/hulunbuir-travel-tips-avoid-pitfalls', - '/blog/grassland-photography-outfit-guide', ], }, }, diff --git a/pages/destinations/[id].vue b/pages/destinations/[id].vue index 3495221..8a18858 100644 --- a/pages/destinations/[id].vue +++ b/pages/destinations/[id].vue @@ -62,7 +62,7 @@ {{ p.name }} @@ -179,6 +179,13 @@ const relatedProducts = computed(() => (dest.value?.relatedProducts || []) .map(pid => allVersions.value.find(v => v.id === pid)) .filter(Boolean) ) + +function productUrl(id) { + if (id.startsWith('autumn-')) return '/products/autumn' + if (id.startsWith('winter-')) return '/products/winter' + if (id === 'summer-camp') return '/summer-camp' + return `/products/${id}` +}