在Play中托管静态HTML! CloudFront上的应用程序

时间:2012-05-09 21:23:02

标签: playframework cdn amazon-cloudfront

我的网站(高流量)大块完全是静态的。所有网站的网址都是相对的,所以如果我只是将浏览器指向http://gj232j2j213.cloudfront.net/blah,那么它现在一切正常。

我想在Cloudfont(或其他一些CDN)上托管整个事物(不仅仅是图像和CSS,还有HTML)。

理想情况下,我可以提出类似的内容:

GET    /static/    staticDir:http://gj232j2j213.cloudfront.net/blah

在我的路线文件中。这样我的网址就像www.mydomain.com/static/main.html,我不必将用户反弹到不同的子域,因为他们在我的静态网址和非静态网址之间来回移动。

有什么想法吗?我被误导了吗?

2 个答案:

答案 0 :(得分:4)

我在conf/routes文件中使用了以下内容来执行此操作:

# Map static resources from the /app/public folder to the /public path
#{if play.Play.mode.isDev()}
    GET     /public/                        staticDir:public
#{/}
#{else}
    GET     d2iu8jbjgczc8x.cloudfront.net/public  staticDir:public
    GET     /public/                              staticDir:public
#{/}

然后,您只需以正常方式引用静态资产,URL将使用CloudFront服务器(在Prod模式下)。

答案 1 :(得分:3)

永远无法在Play 2.x中使用它。

GET     /public/      staticDir:public

对我有用的是这样的。

GET  /somefile.html   controllers.Assets.at(path="/public", file="somefile.html")