Файл кэша, отображаемый по URL в браузере - PullRequest
0 голосов
/ 16 июня 2011

У меня есть метод, отображенный в URL-адресе, например / foo / * / image, который загружает изображение, и я хочу, чтобы браузер кэшировал эту картинку. Но я не понимаю. В Firefox с firebug я вижу, что запрос не кэшируется, и это также происходит в Chrome.

Я пытаюсь установить для Cache-Control значение "max-age = 3600, public" в методе, но, похоже, он ничего не делает.

Ниже приведен фрагмент кода метода, вызванного в контроллере, созданного Spring-MVC.

Кто-нибудь может мне помочь?

Спасибо.

@RequestMapping(value="/foo/{id}/image", method=RequestMethod.GET)
    public void showImage(
            @PathVariable("id") String id,
            HttpServletRequest request,
            HttpServletResponse response,
            Model model) throws Exception{

        //add image to the response
        service.read(id, response);

        //mark the response as cacheable
        HttpServletResponse httpResp = ((HttpServletResponse) response);
        httpResp.setHeader("Cache-Control", "max-age=3600, public");
    }

1 Ответ

0 голосов
/ 16 июня 2011

Рассмотрите возможность использования <mvc:resources>.Там вы можете настроить кэширование.

Кроме того, убедитесь, что ваш запрос не проходит через прокси-сервер, который переопределяет заголовки, и убедитесь, что ответ не перенаправлен.

...