Кажется, что директивы кэша не применяются, когда ответ ресурса содержит HTTP-заголовок Content-Disposition:inline
. Когда мы используем OmniFaces CacheControlFilter, ответ не содержит директивы Cache-Control
или Expires
. Это нормально?OmniFaces CacheControlFilter не имеет эффекта, когда ответ содержит заголовок Content-Disposition
ответ
Нет, это не по умолчанию.
Это поведение говорит о том, что код, ответственный за потоковое воспроизведение файла, выполнил response.reset()
, чтобы обеспечить четкость и чистоту ответа. Вы часто это видите в фрагментах кода copypaste, потому что стартеры в противном случае жалуются, что загрузка не работает. Например здесь: How to provide a file download from a JSF backing bean?
Учитывая, что вы используете OmniFaces, вы, вероятно, можете найти Faces#sendFile()
или FileServlet
более полезную для решения задач потокового файла в ответ. Faces#sendFile()
does not выполняют response.reset()
, а кешины FileServlet
по умолчанию 30 days, который управляется путем переопределения метода getExpireTime()
.
Спасибо, это будет очень полезно – jpl
- 1. Ответ JSON содержит заголовок XML
- 2. .htaccess не имеет никакого эффекта и не отправляет заголовок Expires
- 3. Azure Storage API ContentDisposition
- 4. ScriptingOptions.BatchSize не имеет эффекта
- 5. appWidgetManager.updateAppWidget не имеет эффекта
- 6. SDL_BlitSurface() не имеет эффекта
- 7. setTimeout() не имеет эффекта
- 8. Использование innerHTML не имеет эффекта
- 9. NSApplicationPresentationHideDock не имеет эффекта
- 10. JQuery не имеет эффекта
- 11. SetProcessDpiAwareness не имеет эффекта
- 12. Windows SetThreadAffinityMask не имеет эффекта
- 13. strerror_r не имеет эффекта
- 14. kAudioUnitProperty_ShouldAllocateBuffer не имеет эффекта
- 15. ManyToManyField.add не имеет эффекта
- 16. NLineInputFormat не имеет эффекта
- 17. CKLocationSortDescriptor не имеет эффекта
- 18. ComboBox.DisplayMember не имеет эффекта
- 19. ReactCSSTransitionGroup не имеет эффекта
- 20. SWT: computeSize() не имеет эффекта
- 21. Удаление NSURLCacheCachedResponseForRequest не имеет эффекта
- 22. Оператор C++ не имеет эффекта
- 23. ConfigurationManager.RefreshSection ("appSettings") не имеет эффекта
- 24. @ComponentScan не имеет никакого эффекта
- 25. SetThreadAffinityMask не имеет никакого эффекта
- 26. setPropertiesToFetch не имеет никакого эффекта
- 27. Try/catch не имеет эффекта
- 28. linux wake_up_interruptible() не имеет эффекта
- 29. Перевести анимацию не имеет эффекта
Более чем часто ответные заголовки сбрасываются кодом, предназначенным для потоковой передачи файлов. Вы уверены, что это не так? – BalusC
Правильно. есть response.reset(); в коде – jpl