0

在开发模式下,我希望在本地提供资产,而在生产中部署时,我希望从 CDN 提供资产。任何使用 play2 并从 CDN 提供内容的人都愿意分享他们是如何做到的吗?

// Thinking of something like this in the routes file...
@if(play.Play.isDev()) {
    GET     /assets/*file               controllers.Assets.at(path="/public", file)
} else {
    GET     CDNPATH/assets/*file        controllers.Assets.at(path="CDNPATH", file)
}

(注意:使用 2.0.2 因为标头修复https://github.com/playframework/Play20/pull/276

4

2 回答 2

1

我所做的只是简单地编辑我计算机上的“主机”文件以在本地指向 CDN 域。

于 2012-07-04T20:55:00.973 回答
0

对于那些寻求做类似事情的人,我发现这个链接有人准确地描述了如何使用播放从 CDN 提供内容: http ://www.jamesward.com/2012/08/08/edge-caching-with-play2-heroku -云端

这是另一种选择,我最终使用了一个功能,以便我可以让我的本地系统具有 application.cdn="" 并且在生产中它具有真正的价值。还允许版本更改使缓存无效:

_assets.scala.html

@(path: String)@Html((""""%s%s?v=%s"""").format(
play.api.Play.current.configuration.getString("application.cdn").get,
routes.Assets.at(path), 
play.api.Play.current.configuration.getString("application.version").get ))

采用

@_asset("样式表/css.min.css")

于 2012-07-08T05:08:49.003 回答