Я не уверен, работает ли это в 2.0, но поскольку вы используете Java, это может помочь. Я использую его в 1.2.4.
Router.getFullUrl("Controller.action")
Удачи!
Редактировать: я импортирую play.mvc.Router, так что если его нет в 2.0, вы можете найти что-то похожее.
Кроме того, это документация игры 2.0 по маршрутизации, проверьте Обратную маршрутизацию, возможно, это поможет.
http://www.playframework.org/documentation/2.0.1/JavaRouting
После двух недель охоты на диких гусей я не смог найти ни одной комбинации изменений кода, которые позволили бы использовать этот метод потоковой передачи документов PDF, Excel или Word, когда Включена опция « Не сохранять зашифрованные страницы на диск ».
Microsoft заявила, что такое поведение является преднамеренным в ряде статей базы знаний и частных электронных письмах. Похоже, что когда включена опция « Не сохранять зашифрованные страницы на диск », IE ведет себя правильно и выполняет то, что ему велят делать. Этот пост - лучший ресурс, который я нашел до сих пор, в котором объясняется, почему этот параметр должен быть включен, а также плюсы и минусы его включения:
« Не сохранять зашифрованные страницы на диск 'используется при работе с соединениями SSL (HTTPS). Так же, как веб-сервер может отправлять готовую информацию о том, как кэшировать файл, можно настроить Internet Explorer так, чтобы он не сохранял файлы в кеш во время соединения SSL (HTTPS), независимо от того, сообщает ли вам веб-сервер.
Что такое Плюс для включения этой функции, безопасность - это причина номер один, почему эта функция включена. Страницы не хранятся в кэше временных файлов Интернета.
В чем заключается обратная сторона? Низкая производительность, поскольку в кеш ничего не сохраняется, даже если 1-байтовое изображение в формате gif, которое десятки раз использовалось на странице, необходимо каждый раз загружать с веб-сервера. Что еще хуже, некоторые действия пользователя могут потерпеть неудачу, например, загруженные файлы будут удалены, а при открытии PDF-документов будет невозможно указать несколько сценариев ».
Лучшее решение, которое мы можем найти на этом этапе, - сообщить нашим клиентам и пользователям, что существуют альтернативы использованию этого параметра:
«Использовать« Пустую папку временных файлов Интернета при закрытии браузера ». Каждый раз, когда браузер закрывается все файлы будут удалены из кеша при условии, что файл не заблокирован другим экземпляром браузера или каким-либо внешним приложением.
Перед использованием « Не сохранять зашифрованные страницы необходимо внимательно изучить на диск ». Звучит как отличная функция безопасности, но результаты использования этой функции могут привести к увеличению количества обращений в службу поддержки из-за сбоев загрузки или снижения производительности».
Какая версия IE? Напомню, что Microsoft выпустила исправление для IE6 для этой проблемы. Надеюсь, это пригодится?
Ваш заголовок Cache-Control неверен. Это должно быть Cache-Control: max-age = 1 с тире посередине. Попробуйте сначала исправить это, чтобы увидеть, имеет ли это значение.
Обычно я бы сказал, что наиболее вероятным виновником является ваш заголовок Vary, поскольку такие заголовки часто вызывают проблемы с кешированием в IE: http: // blogs. msdn.com/ieinternals/archive/2009/06/17/9769915.aspx . Вы можете попробовать добавить ETAG в заголовки ответов.
Fiddler не должен влиять на кэшируемость (если вы не написали правила), и похоже, что вы говорите, что это так, что говорит о том, что, возможно, существует какая-то проблема с синхронизацией.
> Не сохранять зашифрованные страницы на диск. Параметр безопасности, который раньше был отключен по умолчанию
Этот параметр имеет значение , по-прежнему отключен по умолчанию (в IE6, 7 и 8), хотя ИТ-администраторы могут включить его через группу Policy, и некоторые крупные компании это делают.
Между прочим, причина, по которой вы видите ошибку сертификата при запуске Fiddler, заключается в том, что вы не выбрали доверять корневому сертификату Fiddler; см. http://www.fiddler2.com/fiddler/help/httpsdecryption.asp для получения дополнительной информации по этой теме.
Я читал о вашей погоне за кешем, но поделюсь своим, который отвечает моим потребностям. , на случай, если это поможет.
Мы уже давно сталкивались с подобной проблемой - мы сделали то, что сделали мы (это Java EE). В конфигурации веб-приложения мы добавляем
<mime-mapping>
<extension>PDF</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping>
Это заставит любой PDF-файл, исходящий из вашего веб-приложения, загружаться вместо того, чтобы браузер пытался отобразить.
РЕДАКТИРОВАТЬ : похоже, вы его передаете. В этом случае вы будете использовать mime-тип как application / octet-stream в своем коде, а не в config. Итак, здесь вместо
Response.ContentType = "application/pdf"
вы будете использовать
Response.ContentType = "application/octet-stream"
Я обнаружил, что это, кажется, работает для меня:
Dim browser As System.Web.HttpBrowserCapabilities = Request.Browser
If (browser.Browser = "IE") Then
Response.AppendHeader("cache-control", "private") ' ie only
Else
Response.AppendHeader("cache-control", "no-cache") ' all others (FF/Chrome tested)
End If