使用Play框架和Java进行缓存

使用Play框架和Java进行缓存,java,playframework,playframework-2.0,browser-cache,expires-header,Java,Playframework,Playframework 2.0,Browser Cache,Expires Header,我正在使用Play和Java运行一个应用程序,我需要为各种类型的资产设置过期日期:图像、css、javascript等 conf/routes文件中有以下内容: GET /assets/*file controllers.Assets.at(path="/public", file) 我可以在application.conf中为一个单独的文件设置过期日期: "assets.cache./public/js/pages/validation.js"="max-

我正在使用Play和Java运行一个应用程序,我需要为各种类型的资产设置过期日期:图像、css、javascript等

conf/routes文件中有以下内容:

GET     /assets/*file               controllers.Assets.at(path="/public", file)
我可以在
application.conf
中为一个单独的文件设置过期日期:

"assets.cache./public/js/pages/validation.js"="max-age=7200"
但我无法为整个文件夹设置它。我试过了

"assets.cache./public/js/pages/*.js"="max-age=7200"
"assets.cache./public/js/pages/*"="max-age=7200"
但什么也没发生。我希望为/js/pages文件夹中的所有内容设置过期日期

我也试过了

assets.defaultCache="max-age=7200"
根据指示,在

以及

http.cacheControl=7200
根据文件

这些都不管用。上面的更改是在application.conf中完成的

我知道有一种方法可以做到这一点,即定义控制器来更改我要为其设置过期日期的路由的响应()

但是我想知道如何从application.conf文件中配置资产的过期日期

我们的应用程序运行在s3linux实例上,因此在服务器上配置过期日期不是一个选项


谢谢大家!

Play framework不支持
“assets.cache./public/js/pages/*.js”=“max age=7200”
但是
assets.defaultCache=“max age=7200”
应该可以工作

在调试/开发模式下(使用play run启动应用程序)
assets.defaultCache
被忽略,因此它总是“无缓存”。确保您正在prod模式下运行它(使用play start)


我在文档中找不到任何参考,但可以在
https://github.com/playframework/playframework/blob/master/framework/src/play/src/main/scala/play/api/controllers/Assets.scala
AssetInfo::cacheControl
函数

您能否在回答中参考第2部分的具体文档