second commit
This commit is contained in:
32
src/routes/(client)/sitemap.xml/+server.js
Normal file
32
src/routes/(client)/sitemap.xml/+server.js
Normal file
@@ -0,0 +1,32 @@
|
||||
export async function GET({ fetch, setHeaders }) {
|
||||
setHeaders({
|
||||
'Content-Type': 'application/xml'
|
||||
});
|
||||
|
||||
const site = 'https://koreanskincareandclinic.com';
|
||||
const response = await fetch('https://api.koreanskincareandclinic.com/api/product');
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch posts.');
|
||||
}
|
||||
const products = await response.json();
|
||||
|
||||
const sitemap = `<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>${site}</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
${products.products
|
||||
.map(
|
||||
(/** @type {{ id: any;slug:string; published_at: string; }} */ product) => `
|
||||
<url>
|
||||
<loc>${site}/product/${product.id}/${product.slug}</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
</url>
|
||||
`
|
||||
)
|
||||
.join('')}
|
||||
</urlset>`;
|
||||
return new Response(sitemap);
|
||||
}
|
||||
Reference in New Issue
Block a user