gpt4 book ai didi

java - 使用 Play 框架和 Java 进行缓存

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:15 25 4
gpt4 key购买 nike

我正在使用 Play 和 Java 运行一个应用程序,我需要为各种类型的 Assets 设置到期日期:图像、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://www.jamesward.com/2014/04/29/optimizing-static-asset-loading-with-play-framework

还有

http.cacheControl=7200

根据文档 http://www.playframework.com/documentation/1.2.3/configuration#http

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

我知道有一种方法可以通过定义 Controller 来更改我想为其设置过期日期的路由的 response(): far future Expires header for static contents

但我想知道如何从 application.conf 文件中配置 Assets 的到期日期。

我们的应用程序在 S3 Linux 实例上运行,因此无法在服务器上配置过期日期。

谢谢!

最佳答案

Play 框架不支持 "assets.cache./public/js/pages/*.js"="max-age=7200"但是 assets.defaultCache="max-age=7200" 应该可以。

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

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

关于java - 使用 Play 框架和 Java 进行缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24020823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com