#java #iis #webobjects
#java #iis #webobjects
Вопрос:
Я хочу кэшировать изображения, возвращаемые Java-приложением WebObjects на стороне клиента, используя Cache-Control
заголовок.
Изображения извлекаются с помощью таких вызовов, как /Scripts/WebObjects.dll/App.woa/1/wr?wodata=1_9840_th
Веб-сервер использует IIS 8.5. Я безуспешно пытался добавить заголовки в конфигурацию IIS. По какой-то причине они не возвращаются в ответе.
Он WOApplication
настроен setPageRefreshOnBacktrackEnabled(true)
, хотя я не знаю, влияет ли это на изображения. Я вижу, что cache-control: no-cache
это возвращается для обычных URL-адресов действий, но не для изображений.
Как я могу убедиться, что мои изображения кэшируются браузером при использовании WebObjects? Я не смог найти ничего, связанного с этим, в руководстве разработчика WebObjects или в WOImage
документации.
Комментарии:
1. Я сомневаюсь, что
setPageRefreshOnBacktrackEnabled
это влияет на обработчик запроса ресурсов (поскольку он не имеет дело с компонентами). В случае сомнений вы всегда можете зарегистрировать свой собственный обработчик запроса дляwr
ключа (WOApp.registerRequestHandler ) и самостоятельно составить ответ.2. Как я могу найти существующий обработчик для этих запросов? Существует ли для них обработчик по умолчанию в WebObjects?
3. Не совсем уверен, что вы имеете в виду, конечно, у WO есть обработчик по умолчанию для доставки ресурсов. Должно быть названо что-то вроде
WOResourceRequestHandler
, и вы можете посмотреть его поWOApplication.requestHandlerForKey("wr")
.4. @hnh Спасибо, что указал мне правильное направление. Я смог добавить заголовки, используя пользовательский обработчик запросов. Похоже, в WebObjects нет встроенной поддержки для этого. Пожалуйста, добавьте ответ на этот вопрос, чтобы я мог пометить его как правильный.
Ответ №1:
Я сомневаюсь, что setPageRefreshOnBacktrackEnabled
это влияет на обработчик запроса ресурсов (поскольку он не имеет дело с компонентами / страницами).
Если вы сомневаетесь, вы всегда можете зарегистрировать свой собственный WORequestHandler
для wr
ключа ( WOApp.registerRequestHandler
) и составить WOResponse
его самостоятельно.
WO имеет обработчик по умолчанию для доставки ресурсов, который должен быть назван примерно так WOResourceRequestHandler
, и вы можете посмотреть его с помощью WOApplication.requestHandlerForKey("wr")
.