Skip to content

Commit 38a9e83

Browse files
committed
fix: correggi la costruzione dell'URL del sito per il feed RSS
1 parent a413845 commit 38a9e83

1 file changed

Lines changed: 38 additions & 2 deletions

File tree

src/pages/rss.xml.ts

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,28 @@ export async function GET(context: APIContext) {
2828
.map(line => JSON.parse(line))
2929
.sort((a, b) => new Date(b.dataApertura).getTime() - new Date(a.dataApertura).getTime());
3030

31+
// Costruisci il site URL corretto come fanno le altre pagine
32+
const siteUrl = (() => {
33+
const site = context.site?.toString() || '';
34+
const baseUrl = import.meta.env.BASE_URL || '/';
35+
36+
// Rimuovi trailing slash dal site
37+
const cleanSite = site.replace(/\/$/, '');
38+
39+
// Gestisci il base URL: se è solo '/', non aggiungerlo
40+
let cleanBase = '';
41+
if (baseUrl !== '/') {
42+
cleanBase = baseUrl.startsWith('/') ? baseUrl : `/${baseUrl}`;
43+
cleanBase = cleanBase.endsWith('/') ? cleanBase.slice(0, -1) : cleanBase;
44+
}
45+
46+
return `${cleanSite}${cleanBase}`;
47+
})();
48+
3149
return rss({
3250
title: 'Referendum e Iniziative Popolari - Ultime Iniziative',
3351
description: 'Feed RSS delle ultime iniziative e referendum popolari in Italia',
34-
site: context.site ?? 'https://ondata.github.io/referendum_astro/',
52+
site: siteUrl,
3553
items: initiatives.map((initiative) => {
3654
const officialUrl = `https://firmereferendum.giustizia.it/referendum/open/dettaglio-open/${initiative.id}`;
3755

@@ -59,11 +77,29 @@ export async function GET(context: APIContext) {
5977
} catch (error) {
6078
console.error('Errore nella generazione del feed RSS:', error);
6179

80+
// Costruisci il site URL corretto anche per l'errore
81+
const siteUrl = (() => {
82+
const site = context.site?.toString() || '';
83+
const baseUrl = import.meta.env.BASE_URL || '/';
84+
85+
// Rimuovi trailing slash dal site
86+
const cleanSite = site.replace(/\/$/, '');
87+
88+
// Gestisci il base URL: se è solo '/', non aggiungerlo
89+
let cleanBase = '';
90+
if (baseUrl !== '/') {
91+
cleanBase = baseUrl.startsWith('/') ? baseUrl : `/${baseUrl}`;
92+
cleanBase = cleanBase.endsWith('/') ? cleanBase.slice(0, -1) : cleanBase;
93+
}
94+
95+
return `${cleanSite}${cleanBase}`;
96+
})();
97+
6298
// Ritorna un feed vuoto in caso di errore
6399
return rss({
64100
title: 'Referendum e Iniziative Popolari - Feed non disponibile',
65101
description: 'Errore nel caricamento delle iniziative',
66-
site: context.site ?? 'https://ondata.github.io/referendum_astro/',
102+
site: siteUrl,
67103
items: [],
68104
});
69105
}

0 commit comments

Comments
 (0)