5

Ho un sito Web con traffico elevato e molto contenuto statico. È attualmente su Play 1.2.4, ma sto facendo la migrazione a Play 2.0.2.Usi CDN su Play 2.0

Per Play 1.X abbiamo scritto un codice che abbiamo usato al posto di @asset all'interno di template html.

/** 
* 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)) 
    } 
} 

Per Play 2.0 penso che possiamo migliorare su questo. Penso che sarebbe meglio se non dovessimo sporcare i nostri modelli con il nostro codice personalizzato invece di utilizzare il @ Asset.at fornito da Play 2.0. Non sono sicuro che il modo migliore per farlo. Mi chiedo se fare qualcosa di simile è stato fatto in risposta a questa domanda su Play 1.2.X Hosting static HTML in a Play! app on CloudFront potrebbe essere fatto for Gioca 2.0.

vorrei sfruttare appieno il controller beni forniti da Play 2.0 in quanto svolge alcune ottimizzazioni che sarebbe bello avere.

Qualcuno sa un modo di fare questo? Penso che se si può fare solo con qualche magia del router, sarebbe l'ideale ma sono ancora un po 'troppo esperto con Play per sapere se e come è possibile.

risposta

4

James Ward ha scritto un excellent tutorial per farlo in modo pulito.

+0

Questo tutorial sembra buono. È troppo arrabbiato nessuno lo ha ancora trasformato in un plugin. Dovrò considerare di farlo. – myyk

+0

Buona idea! quello sarà un plugin abbastanza piccolo utile. – mchv

+0

Ho appena [iniziato a lavorare] (https://github.com/mchv/play2-cloudfront) su di esso. Un piccolo plug-in ispirato al tutorial di James. Ti farò sapere quando è operativo. – mchv