Часть моего приложения предоставляет файл для загрузки с использованием метода redirect()
.Я обнаружил, что Chrome (а не Firefox или IE, как ни странно) кэширует этот файл, так что одна и та же версия загружается, даже если она изменилась на стороне сервера.Я понял, что есть способ сказать браузеру не кэшировать файл, например, как этот в HTML, или добавив что-то в заголовок HTTP.Я мог бы понять это в веб-структуре более низкого уровня, но я не знаю, как получить заголовок в Play !, и опция HTML не будет работать, потому что это не файл HTML.
Кажется, что в Play всегда есть умный и простой способ выполнять общие задачи! Так есть ли умный и простой способ предотвратить кэширование в контроллере?
Спасибо!
Редактировать:
Мэтт указывает мне на http.cacheControl
настройку , которая контролирует кэширование для всего сайта.Хотя это будет работать, у меня нет проблем с кэшированием большей части сайта, особенно CSS и т. Д. Если возможно, я бы хотел контролировать кэширование для одного URL-адреса за раз (тот, который указывает на загружаемый файл в данном случае).Это не совсем сайт с высоким трафиком, так что это просто академический интерес.
В идеале я хотел бы сделать что-то вроде:
public static void downloadFile(String url) {
response.setCaching(false); // This is the method I'm looking for
redirect(url); // Send the response
}