5

Tengo un sitio web de alto tráfico con mucho contenido estático. Actualmente está en Play 1.2.4 pero estoy haciendo la migración a Play 2.0.2.Usos de CDN en Play 2.0

Para Play 1.X escribimos un código que usamos en lugar del @asset dentro de las plantillas 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)) 
    } 
} 

Para Play 2.0 Creo que podemos mejorar esto. Creo que sería mejor si no tuviéramos que ensuciar nuestras plantillas con nuestro código personalizado en lugar de usar el @ Asset.at provisto por Play 2.0. No estoy seguro de la mejor manera de hacer esto. Me pregunto si al hacer algo como se hizo en la respuesta a esta pregunta en Play 1.2.X Hosting static HTML in a Play! app on CloudFront podría hacerse para Play 2.0.

Me gustaría aprovechar al máximo el controlador de activos proporcionado por Play 2.0 ya que realiza algunas optimizaciones que sería bueno tener.

¿Alguien sabe una manera de hacer esto? Estoy pensando que si se puede hacer solo con algo de Router magic, sería ideal, pero aún soy un poco principiante con Play para saber si es posible o cómo.

Respuesta

4

James Ward ha escrito excellent tutorial para hacerlo limpiamente.

+0

Este tutorial se ve bien. Es una locura que nadie haya convertido esto en un complemento todavía. Tendré que considerar hacer eso. – myyk

+0

¡Buena idea! ese será un plugin bastante pequeño y útil. – mchv

+0

Acabo de [empezar a trabajar] (https://github.com/mchv/play2-cloudfront) en él. Un pequeño complemento inspirado en el tutorial de James. Te avisaré cuando sea operativo. – mchv

Cuestiones relacionadas