我的网站(高流量)大块完全是静态的。所有网站的网址都是相对的,所以如果我只是将浏览器指向http://gj232j2j213.cloudfront.net/blah
,那么它现在一切正常。
我想在Cloudfont(或其他一些CDN)上托管整个事物(不仅仅是图像和CSS,还有HTML)。
理想情况下,我可以提出类似的内容:
GET /static/ staticDir:http://gj232j2j213.cloudfront.net/blah
在我的路线文件中。这样我的网址就像www.mydomain.com/static/main.html
,我不必将用户反弹到不同的子域,因为他们在我的静态网址和非静态网址之间来回移动。
有什么想法吗?我被误导了吗?
答案 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")