fix: OnlyOffice/Preview zeigt immer aktuelle Version (kein Cache)

Drei Cache-Ebenen gefixt:
- Vue Router: :key=fullPath erzwingt Komponenten-Neuaufbau bei
  jeder Navigation (kein Wiederverwenden alter Instanzen)
- Frontend: Cache-Bust Parameter an Preview + OnlyOffice API-Calls
- Backend: No-Cache Headers (Cache-Control, Pragma) auf Preview-Endpunkt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Hacker
2026-04-11 22:50:33 +02:00
parent 916971fc1b
commit 5f79ebe9b0
3 changed files with 11 additions and 3 deletions
+1 -1
View File
@@ -67,7 +67,7 @@
</aside>
<main class="main-content">
<router-view />
<router-view :key="$route.fullPath" />
</main>
</div>
</template>
+3 -2
View File
@@ -104,6 +104,7 @@ const auth = useAuthStore()
const toast = useToast()
const fileId = route.params.fileId
const cacheBust = Date.now()
const fileName = ref('')
const previewType = ref('')
const previewUrl = ref('')
@@ -135,12 +136,12 @@ async function loadPreview() {
loading.value = true
try {
// For Office files, try OnlyOffice first
const previewRes = await apiClient.get(`/files/${fileId}/preview`)
const previewRes = await apiClient.get(`/files/${fileId}/preview?_=${cacheBust}`)
fileName.value = previewRes.data.name || ''
if (isOfficeFile(fileName.value)) {
try {
const ooRes = await apiClient.get(`/files/${fileId}/onlyoffice-config`)
const ooRes = await apiClient.get(`/files/${fileId}/onlyoffice-config?_=${cacheBust}`)
if (ooRes.data.available) {
onlyOfficeMode.value = true
loading.value = false