Playframework 如何将CDN与Play Framework 2.4资产一起使用?

Playframework 如何将CDN与Play Framework 2.4资产一起使用?,playframework,cdn,playframework-2.4,Playframework,Cdn,Playframework 2.4,我想使用一个CDN URL,当通过以下方式获取资产时,该URL会自动添加到资产URL中: @routes.Assets.versioned("js/whatever.js") 有一个例子,但我在剧本2.4中找不到任何例子来说明如何做到这一点。有人已经弄明白了吗 谢谢 这实际上取决于您的web基础架构需要什么样的缓存策略 说到2.3到2.4的过渡,您只需要改变一件事: 使用控制器而不是对象 请参见“为什么”部分 更一般地说,Play框架具有优秀的内置功能。我将使用版本化而不是at和内置的资产

我想使用一个CDN URL,当通过以下方式获取资产时,该URL会自动添加到资产URL中:

@routes.Assets.versioned("js/whatever.js")
有一个例子,但我在剧本2.4中找不到任何例子来说明如何做到这一点。有人已经弄明白了吗


谢谢

这实际上取决于您的web基础架构需要什么样的缓存策略

说到2.3到2.4的过渡,您只需要改变一件事:

  • 使用
    控制器
    而不是
    对象
请参见“为什么”部分

更一般地说,Play框架具有优秀的内置功能。我将使用
版本化
而不是
at
和内置的
资产
控制器,通过使用包含版本化支持。值得检查您的CDN是否支持Etag

您可以使用基于HTTP头的Etag技术和博客文章中基于文件名的技术中的一种或两种。这取决于您的web基础架构。一个可能比另一个好


(该博客中的p.S.代码不会编译,自定义
at
需要三个参数,对它的调用只有两个参数。)

谢谢,我当然想利用Etag功能,但我还需要支持来自全国各地的用户,如果可能的话,我希望使用结合播放缓存功能的CDN。看起来反向代理CDN能够实现这一点。我在Sky使用Akamai CDN时,它有某种反向代理,但其UI/config非常糟糕。我会使用一个单独的反向代理(例如Nginx)并让CDN使用它。@bjfletcher我知道这很旧,但我有一个基本问题。当我们在播放应用程序级别添加CDN主机时,每个资产请求都必须先播放,然后转到CDN,对吗?如果是这样,我们如何从CDN中获益。。我们不使用UI的播放方式。。我们在网页包中使用Angular 2。所以我认为,我们将尝试CDN的网页包配置。谢谢