【问题标题】:CDN usages on Play 2.0Play 2.0 上的 CDN 使用情况
【发布时间】:2012-08-24 13:25:16
【问题描述】:

我有一个包含大量静态内容的高流量网站。它目前在 Play 1.2.4 上,但我正在迁移到 Play 2.0.2。

对于 Play 1.X,我们编写了一些我们使用的代码,而不是 html 模板中的 @asset。

/**
 * 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))
  }
}

对于 Play 2.0,我认为我们可以对此进行改进。我认为如果我们不必使用自定义代码乱扔模板而不是使用 Play 2.0 提供的 @Asset.at 会更好。我不确定做到这一点的最佳方法。我想知道在 Play 1.2.X 上回答这个问题时是否做了类似的事情 Hosting static HTML in a Play! app on CloudFront 可以为 Play 2.0 完成。

我想充分利用 Play 2.0 提供的资产控制器,因为它执行了一些很不错的优化。

有人知道这样做的方法吗?我在想如果它可以通过一些路由器魔法来完成,那将是理想的,但我对 Play 还是有点太初学者了,不知道这是否或如何实现。

【问题讨论】:

    标签: scala playframework playframework-2.0 cdn amazon-cloudfront


    【解决方案1】:

    James Ward 写了一个 excellent tutorial 来干净利落地做到这一点。

    【讨论】:

    • 这个教程看起来不错。太疯狂了,还没有人把它做成插件。我将不得不考虑这样做。
    • 好主意!这将是一个非常有用的小插件。
    • 我只有started to work。一个受詹姆斯教程启发的小插件。我会在它运行时通知您。
    • 太棒了,我很兴奋。我仍然需要完成将我的应用程序迁移到 Play 2 才能使用它。不过我会在它准备好时检查它。
    • 嘿,那个插件有更新吗?我终于迁移了足够多的网站,可以对其进行测试了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多