Play Framework javascript 文件缩小/隐藏源
Play Framework javascript file minification / hide sources
我想在 Play Framework 2.3.10 中压缩我自己编写的 javascripts。我开始将我所有的脚本放到 app/assets/javascripts/*。此外,我在 conf/routes 中添加了以下路线:
GET /assets/v/*file controllers.Assets.versioned(path="/public", file: Asset)
我添加了以下行以使用 uglify 和 digest 启用缩小。
到 plugins.sbt:
addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
和 build.sbt:
pipelineStages in Assets := Seq(uglify, digest)
一切都很顺利。当我在浏览器中请求该网站时,我看到缩小的 javascript 文件 (.min.js) 以及正常(源)javascript 文件 (.js)。问题是生成了一个源映射并附加到缩小的 javascript。它链接到源文件。
我怎样才能避免这种情况?是否可以隐藏/拒绝访问源 javascript 文件,以便用户可以只请求缩小版本(即使试图通过直接访问源文件 url [ 例如 mypage.de/assets/v/javascripts/script.js ] ) ?
提前致谢,
罗布
好的,
我找到了解决问题的办法。我添加了一个过滤器来过滤掉我的 app/assets/javascripts/ 文件夹中的所有 .js 文件。我通过添加
来做到这一点
addSbtPlugin("com.slidingautonomy.sbt" % "sbt-filter" % "1.0.1")
到我的 project/plugins.sbt 文件。我更改了 build.sbt 中的 pipelineStages 以添加过滤器。
pipelineStages in Assets := Seq(uglify, digest, filter)
includeFilter in filter := new FileFilter {
def accept(pathname: File): Boolean = {
val path = pathname.getAbsolutePath.replaceAll("\\", "/")
path.contains("javascripts/functions")
}
}
excludeFilter in filter := "*.min.js"
Play 现在正在创建所有缩小的 js.min 文件。之后 javascripts/functions 中的所有文件都被过滤,除了 min.js 文件。希望对您有所帮助。
罗布
我想在 Play Framework 2.3.10 中压缩我自己编写的 javascripts。我开始将我所有的脚本放到 app/assets/javascripts/*。此外,我在 conf/routes 中添加了以下路线:
GET /assets/v/*file controllers.Assets.versioned(path="/public", file: Asset)
我添加了以下行以使用 uglify 和 digest 启用缩小。 到 plugins.sbt:
addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
和 build.sbt:
pipelineStages in Assets := Seq(uglify, digest)
一切都很顺利。当我在浏览器中请求该网站时,我看到缩小的 javascript 文件 (.min.js) 以及正常(源)javascript 文件 (.js)。问题是生成了一个源映射并附加到缩小的 javascript。它链接到源文件。 我怎样才能避免这种情况?是否可以隐藏/拒绝访问源 javascript 文件,以便用户可以只请求缩小版本(即使试图通过直接访问源文件 url [ 例如 mypage.de/assets/v/javascripts/script.js ] ) ?
提前致谢, 罗布
好的,
我找到了解决问题的办法。我添加了一个过滤器来过滤掉我的 app/assets/javascripts/ 文件夹中的所有 .js 文件。我通过添加
来做到这一点addSbtPlugin("com.slidingautonomy.sbt" % "sbt-filter" % "1.0.1")
到我的 project/plugins.sbt 文件。我更改了 build.sbt 中的 pipelineStages 以添加过滤器。
pipelineStages in Assets := Seq(uglify, digest, filter)
includeFilter in filter := new FileFilter {
def accept(pathname: File): Boolean = {
val path = pathname.getAbsolutePath.replaceAll("\\", "/")
path.contains("javascripts/functions")
}
}
excludeFilter in filter := "*.min.js"
Play 现在正在创建所有缩小的 js.min 文件。之后 javascripts/functions 中的所有文件都被过滤,除了 min.js 文件。希望对您有所帮助。
罗布