5

私は多くの静的コンテンツを持つトラフィックの多いウェブサイトを持っています。それは現在Play 1.2.4にありますが、私はPlay 2.0.2への移行を行っています。Play 2.0でのCDNの使用

Play 1.Xでは、HTMLテンプレートの中で@assetの代わりに使用したコードをいくつか書きました。

/** 
* Drop-in replacement for @asset. Use to take advantage of cloudfront on live. 
* Paths are always absolute to root. Leading '/' is optional. 
* 
* @param path relative to the application root. This should usually be "public/some-file" 
* @return path to asset on the currently configured CDN. 
*/ 
def cdnAsset(path: String) : String = { 
    cdnEnabled match { 
    case "true" => 
     path(0) match { 
     case '/' => "https://" + cdnUrl + path 
     case _ => "https://" + cdnUrl + "/" + path 
     } 

    case _ => 
     play.mvc.Router.reverse(play.Play.getVirtualFile(path)) 
    } 
} 

私はこれを改善できると思います。私は、Play 2.0で提供されている@ Asset.atを使用するのではなく、カスタムコードでテンプレートを捨てなくてもいいと思っています。私はこれを行うための最善の方法がわからない。私はこのようなことをPlay 1.2.Xのこの質問の答えで行ったのかと疑問に思っています。Play 2.0では Hosting static HTML in a Play! app on CloudFront を実行できました。

私はPlay 2.0で提供されているAssetsコントローラーを十分に活用したいと思います。

誰でもこれを行う方法を知っていますか?理想的だと思うルーターの魔法だけで済ませることができると思っていますが、それが可能かどうかを知るためにはPlayの初心者でもまだ少しすぎます。

答えて

4

James Wardさんはexcellent tutorialと書いてあります。

+0

このチュートリアルはよく見えます。誰もこれをまだプラグインにしていないのはあまりにも怒っている。私はそれを検討する必要があります。 – myyk

+0

良いアイデア!それは有用な非常に小さなプラグインになります。 – mchv

+0

私は[作業を開始]しています(https://github.com/mchv/play2-cloudfront)。 Jamesのチュートリアルに触発された小さなプラグイン。私はあなたがその操作の時を知らせるでしょう。 – mchv

関連する問題