Refactor CSV data loading in 'vereinsmeisterschaften.vue' and 'cms/vereinsmeisterschaften.vue' to utilize API endpoints instead of static files, addressing cache issues. Update debugging logs to reflect new data source and improve response header logging for better traceability.
This commit is contained in:
40
server/api/vereinsmeisterschaften.get.js
Normal file
40
server/api/vereinsmeisterschaften.get.js
Normal file
@@ -0,0 +1,40 @@
|
||||
import { promises as fs } from 'fs'
|
||||
import path from 'path'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
const cwd = process.cwd()
|
||||
|
||||
// In production (.output/server), working dir is .output
|
||||
let csvPath
|
||||
if (cwd.endsWith('.output')) {
|
||||
csvPath = path.join(cwd, '../public/data/vereinsmeisterschaften.csv')
|
||||
} else {
|
||||
csvPath = path.join(cwd, 'public/data/vereinsmeisterschaften.csv')
|
||||
}
|
||||
|
||||
// CSV-Datei direkt als Text zurückgeben (keine Caching-Probleme)
|
||||
const csv = await fs.readFile(csvPath, 'utf-8')
|
||||
|
||||
// Setze Content-Type und Cache-Control Header
|
||||
setHeader(event, 'Content-Type', 'text/csv; charset=utf-8')
|
||||
setHeader(event, 'Cache-Control', 'no-cache, no-store, must-revalidate')
|
||||
setHeader(event, 'Pragma', 'no-cache')
|
||||
setHeader(event, 'Expires', '0')
|
||||
|
||||
return csv
|
||||
} catch (error) {
|
||||
if (error.code === 'ENOENT') {
|
||||
throw createError({
|
||||
statusCode: 404,
|
||||
statusMessage: 'Vereinsmeisterschaften-Datei nicht gefunden'
|
||||
})
|
||||
}
|
||||
console.error('Fehler beim Laden der Vereinsmeisterschaften:', error)
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
statusMessage: 'Fehler beim Laden der Vereinsmeisterschaften'
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user