Il sistema processa correttamente il CSV e aggiorna i dati nel backend. Il problema è che il browser usa cache e non mostra i dati aggiornati immediatamente.
Dopo aver caricato un CSV con successo:
- Chiudi la pagina admin
- Vai alla homepage (
http://localhost:9000) - Forza il refresh del browser:
- Windows/Linux:
Ctrl + Shift + RoppureCtrl + F5 - Mac:
Cmd + Shift + R
- Windows/Linux:
- Attendi 2-3 secondi per il caricamento
- ✅ I nuovi dati saranno visibili!
- Apri DevTools (
F12) - Vai alla tab Application (Chrome) o Storage (Firefox)
- Click destro su cache entries → Clear
- Oppure: Settings → Privacy → Clear browsing data → Cached images and files
- Ricarica la pagina
- Apri una nuova finestra in modalità incognito/privata
- Vai a
http://localhost:9000 - I dati saranno freschi (no cache)
- Apri DevTools (
F12) - Vai alla tab Network
- Spunta "Disable cache"
- Tieni i DevTools aperti
- Ricarica la pagina
- Controlla il numero di lemmi nella dashboard
- Verifica i marker sulla mappa
- Cerca uno dei lemmi che hai caricato
- Apri DevTools (
F12) - Vai alla tab Network
- Filtra per
lemmi - Ricarica la pagina
- Click sulla richiesta
/api/lemmi - Guarda il Response:
[ {"Lemma": "tuo_lemma", ...}, ... ] - Verifica che ci siano i tuoi dati
# Quanti record ci sono ora?
curl -s "http://localhost:9000/api/lemmi" \
-H "X-API-Key: default_dev_key" | \
python3 -c "import sys,json; print(f'Record: {len(json.load(sys.stdin))}')"
# Quali sono i primi lemmi?
curl -s "http://localhost:9000/api/lemmi" \
-H "X-API-Key: default_dev_key" | \
python3 -c "import sys,json; data=json.load(sys.stdin); print('Lemmi:', ', '.join([d['Lemma'] for d in data[:10]]))"Causa: Il backend potrebbe non essere aggiornato.
Soluzione:
# 1. Verifica i dati nel backend
docker compose exec backend node -e "
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('/app/data/lemmi.json'));
console.log('Record nel backend:', data.length);
console.log('Primi lemmi:', data.slice(0,5).map(l => l.Lemma).join(', '));
"
# 2. Se i dati sono vecchi, riavvia il backend
docker compose restart backend
# 3. Aspetta 10 secondi
sleep 10
# 4. Riprova hard refresh nel browserCausa: Potrebbe esserci un problema con il volume Docker.
Soluzione:
# 1. Controlla l'ultima modifica del file
docker compose exec backend stat /app/data/lemmi.json
# 2. Se la data è vecchia, c'è un problema con il volume
# Riavvia completamente:
docker compose down
docker compose up -d
# 3. Rifai l'uploadCausa: File CSV malformato o troppo grande.
Soluzione:
- Verifica che il CSV abbia tutte le colonne richieste
- Dimensione massima: 10 MB
- Encoding: UTF-8
- Formato: CSV con virgole come separatori
- 1. Login admin (
http://localhost:9000/admin/upload) - 2. Carica CSV
- 3. Attendi "Processamento completato"
- 4. Verifica numero record processati
- 5. Chiudi pagina admin
- 6. Vai alla homepage
- 7. Hard refresh (
Ctrl + Shift + R) - 8. Attendi caricamento (2-3 secondi)
- 9. Verifica numero lemmi nella dashboard
- 10. Verifica marker sulla mappa
Per evitare questo problema in futuro, puoi:
- Apri sempre http://localhost:9000 in modalità incognito
- Nessuna cache, dati sempre freschi
1. Apri DevTools (F12)
2. Settings (⚙️) → Preferences
3. Spunta "Disable cache (while DevTools is open)"
4. Tieni sempre i DevTools aperti
# Dopo ogni upload, se non vedi i dati:
docker compose restart lemmario-dashboard
# Aspetta 10 secondi, poi ricarica pagina-
Sviluppo Locale:
- Usa sempre DevTools con cache disabilitata
- Hard refresh frequenti
-
Produzione:
- Implementare versioning degli asset
- Service Worker per cache management
- Header Cache-Control appropriati
-
Workflow Consigliato:
Upload CSV → Verifica API (terminale) → Hard Refresh Browser
Per verificare che tutto funzioni:
# 1. Upload un CSV di test
cat > /tmp/quick_test.csv << 'EOF'
IdLemma,Lemma,Forma,CollGeografica,Latitudine,Longitudine,TipoCollGeografica,Anno,Periodo,IDPeriodo,Datazione,Categoria,Frequenza,URL,IdAmbito,RegionIstatCode
999,quicktest,quicktest,Roma,41.9,12.5,Città,2026,XXI secolo,21,Sec. XXI,Test,1,http://test,,
EOF
# 2. Fai login e upload
TOKEN=$(curl -s -X POST http://localhost:9000/api/admin/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin"}' | \
python3 -c "import sys,json; print(json.load(sys.stdin)['token'])")
curl -X POST http://localhost:9000/api/admin/upload \
-H "Authorization: Bearer $TOKEN" \
-F "file=@/tmp/quick_test.csv"
# 3. Aspetta 2 secondi
sleep 2
# 4. Verifica API
curl -s "http://localhost:9000/api/lemmi" \
-H "X-API-Key: default_dev_key" | \
python3 -c "import sys,json; data=json.load(sys.stdin); print('✅ Record:', len(data)); print('Lemma:', data[0]['Lemma'] if data else 'VUOTO')"
# 5. Se vedi "quicktest", funziona!
# Ora vai al browser e fai HARD REFRESH (Ctrl+Shift+R)Ricorda: Il browser ama la cache! 😄
Dopo ogni upload, il hard refresh è tuo amico! 💪