如何在play框架中使用requirejs和自定义文件夹结构

时间:2013-02-17 17:53:15

标签: playframework requirejs playframework-2.1

我刚刚切换到框架2.10并喜欢使用RequireJS。我确实有一个自定义文件夹结构(懒得一直写javascripts,所以它的/ js /;)。而dist我然后得到以下错误:

  

错误:错误:模块路径不存在:/tmp/build_udsbfo9u2iwl/target/scala-2.10/classes/public/javascripts/app.js用于名为app的模块。路径相对于:/ tmp / build_udsbfo9u2iwl   [info] RequireJS优化完成。

所以要求显然只在javascripts文件夹中查找。我想必须有一些文件夹配置的地方,但我无法找到它。

那么,如何在play framework 2.10中配置requireJs以在优化时使用我的文件夹?

1 个答案:

答案 0 :(得分:9)

在Build.scala中设置requireJsFolder值:

import sbt._
import Keys._
import play.Project._

object ApplicationBuild extends Build {

  val appName         = "play-2-1-features"
  val appVersion      = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    jdbc,
    anorm,
    "junit" % "junit-dep" % "4.11" % "test"
  )

  val main = play.Project(appName, appVersion, appDependencies).settings(
    requireJs += "main.js"
    , requireJsFolder := "js" //changes location from javascripts to js
  )
}

然后您可以在模板中使用它:

@helper.requireJs(core = routes.Assets.at("javascripts/require.js").url, module = routes.Assets.at("js/main").url)

这是我的示例项目https://github.com/schleichardt/play-2.1-features/tree/stackoverflow-question-14924134(注意:它不在主分支中)