5

Mam witrynę o dużym natężeniu ruchu z dużą ilością statycznych treści. Aktualnie jest w Play 1.2.4, ale robię migrację do Play 2.0.2.Wykorzystanie CDN w Play 2.0

Do gry 1.X napisaliśmy kod, którego użyliśmy zamiast zestawu @ wewnątrz szablonów 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)) 
    } 
} 

Dla Play 2.0 Myślę, że możemy to ulepszyć. Myślę, że byłoby lepiej, gdybyśmy nie musieli usuwać naszych szablonów za pomocą naszego niestandardowego kodu, zamiast korzystać z pliku @ Asset.at dostarczonego przez Play 2.0. Nie jestem pewien, jak najlepiej to zrobić. Zastanawiam się, czy zrobienie czegoś podobnego w odpowiedzi na to pytanie w Play 1.2.X Hosting static HTML in a Play! app on CloudFrontmożna zrobić dla Play 2.0.

Chciałbym w pełni wykorzystać kontroler aktywów dostarczony przez Play 2.0, ponieważ wykonuje kilka optymalizacji, które byłyby przyjemne.

Czy ktoś wie, jak to zrobić? Zastanawiam się, czy da się to zrobić za pomocą magii Routera, byłoby to idealne, ale wciąż jestem trochę zbyt początkujący dla Play, żeby wiedzieć, czy i jak to jest możliwe.

Odpowiedz

4

James Ward napisał excellent tutorial, aby zrobić to w czysty sposób.

+0

Ten samouczek wygląda dobrze. To zbyt szalone, nikt jeszcze nie zrobił tego w wtyczce. Muszę to rozważyć. – myyk

+0

Dobry pomysł! będzie to przydatna, dość mała wtyczka. – mchv

+0

Właśnie rozpocząłem pracę (https://github.com/mchv/play2-cloudfront). Mała wtyczka inspirowana poradnikiem Jamesa. Dam ci znać, kiedy będzie działać. – mchv

Powiązane problemy