【发布时间】:2012-07-13 19:57:50
【问题描述】:
我从Setting HTTP headers in Play 2.0 (scala)? 了解到,您可以根据具体情况设置响应标头,例如,Ok("hello").withHeaders(PRAGMA -> "no-cache")。
如果您想为所有操作的响应设置该标题或几个不同的标题怎么办?您不想到处重复withHeaders。而且由于这更像是应用程序范围的配置,您可能不希望 Action 编写者必须使用不同的语法来获取您的标头(例如 OkWithHeaders(...))
我现在拥有的是一个看起来像这样的基本 Controller 类
class ContextController extends Controller {
...
def Ok(h: Html) = Results.Ok(h).withHeaders(PRAGMA -> "no-cache")
}
但这感觉不太对劲。感觉应该有更多 AOP 风格的方式来定义默认标头并将它们添加到每个响应中。
【问题讨论】:
-
请注意,PRAGMA -> no-cache 可能不会按照您的预期工作。请参阅此链接:mnot.net/cache_docs 您可能想使用 CACHE_CONTROL 而不是 PRAGMA
-
CACHE_CONTROL -> "max-age=0"应该这样做。