5

Tôi có trang web lưu lượng truy cập cao với nhiều nội dung tĩnh. Nó hiện đang phát trên Play 1.2.4 nhưng tôi đang thực hiện di chuyển sang Play 2.0.2.Sử dụng CDN trên Play 2.0

Để chơi 1.X, chúng tôi đã viết một số mã mà chúng tôi đã sử dụng thay vì @asset bên trong các mẫu 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)) 
    } 
} 

Đối với Play 2.0, tôi nghĩ chúng tôi có thể cải thiện điều này. Tôi nghĩ sẽ tốt hơn nếu chúng tôi không phải phân phát mẫu của chúng tôi bằng mã tùy chỉnh của chúng tôi thay vì sử dụng @ Asset.at do Play 2.0 cung cấp. Tôi không chắc chắn cách tốt nhất để làm điều này. Tôi tự hỏi nếu làm một cái gì đó giống như đã được thực hiện trong câu trả lời cho câu hỏi này trên Play 1.2.X Hosting static HTML in a Play! app on CloudFront có thể được thực hiện cho Play 2.0.

Tôi muốn tận dụng toàn bộ lợi thế của bộ điều khiển nội dung do Play 2.0 cung cấp vì nó thực hiện một vài tối ưu hóa sẽ tốt hơn nếu có.

Có ai biết cách thực hiện việc này không? Tôi nghĩ nếu nó có thể được thực hiện chỉ với một số phép thuật Router, đó sẽ là lý tưởng nhưng tôi vẫn còn một chút quá mới bắt đầu với Play để biết nếu hoặc làm thế nào là có thể.

Trả lời

4

James Ward đã viết excellent tutorial để làm sạch.

+0

Hướng dẫn này có vẻ tốt. Nó quá điên không ai đã thực hiện điều này vào một plugin nào được nêu ra. Tôi sẽ phải cân nhắc việc đó. – myyk

+0

Ý tưởng hay! đó sẽ là một plugin khá nhỏ hữu ích. – mchv

+0

Tôi vừa mới bắt đầu làm việc (https://github.com/mchv/play2-cloudfront) trên đó. Một plug-in nhỏ lấy cảm hứng từ hướng dẫn của James. Tôi sẽ cho bạn biết khi nào nó hoạt động. – mchv

Các vấn đề liên quan