从CDN提供静态play2.x内容

时间:2012-07-04 20:52:54

标签: routes playframework-2.0 cdn

在开发模式中,我希望在本地提供资源,在生产中部署时,我希望它们来自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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

对于那些寻求做类似事情的人,我找到了这个链接,其中有人详细描述了如何使用play来提供cdn中的内容: http://www.jamesward.com/2012/08/08/edge-caching-with-play2-heroku-cloudfront

这是另一个选项,我最终使用的功能,以便我可以让我的本地系统有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 ))

使用

@_资产( “样式表/ css.min.css”)