Ich habe eine @ JavaScript-Annotation in meiner Anwendung, um eine .js-Datei aus dem Klassenpfad zu laden.Vaadin @Javascript: Cache für aktualisierte JS-Datei löschen
Jetzt habe ich ein Update für die Datei und neu implementiert (lokal), aber ich bekomme immer die alte Version zurück. Ich habe versucht, alles neu zu laden (Strg + R, Strg + F5), aber das funktioniert nicht und ich würde auch nicht wollen, dass die Benutzer das tun müssen.
Ein Trick, den ich in der Vergangenheit (ohne Vaadin) verwendet habe, war, einen Anfrageparameter an die Version anzuhängen (z.B.? Version = 1) und dieses zu aktualisieren, so dass sich die URL ändert. Aber das ist anscheinend nicht für die @ Java-Annotation erlaubt (Vaadin versucht nicht einmal, die Datei zu laden).
Möglicherweise verwendet Ihre App die @PreserveOnRefresh-Annotation auf dem Benutzeroberflächenobjekt? Dies könnte Vaadin daran hindern, JS neu zu laden. –
Nein, ich verwende @PreserveOnRefresh nicht. Außerdem hatte ich den Server neu gestartet, so dass es keinen Unterschied gemacht hätte. Ich habe gerade den Dateinamen geändert (hinzugefügt _vxxx, wobei xxx eine Zahl ist) und das funktioniert. – herman
Sie sagen also, dass sogar ein Server-Neustart die "alte" Datei behalten hat? Könntest du einen 'find' für die Datei in deinem Ziel-Verzeichnis machen? könnte sein, dass es mehrmals da ist (zum Beispiel einmal von deiner Idee und einmal von deinem Bauwerkzeug). Wenn beide im Klassenpfad sind, wird nur einer abgeholt. – cfrick