我正在努力让requirejs和webjars工作,但它们似乎没有在游戏中工作2.3.7
路线:
GET /vassets/*file controllers.Assets.versioned(path="/public", file)
GET /webjars/*file controllers.WebJarAssets.at(file)
build.sbt
"org.webjars" %% "webjars-play" % "2.3.0-2",
"org.webjars" % "jquery" % "2.1.3"
html模板
<script>
@Html(org.webjars.RequireJS.getSetupJavaScript(routes.WebJarAssets.at("").url))
</script>
<script data-main="@routes.Assets.versioned("js/koapp/js_init")"
src="@routes.WebJarAssets.at(WebJarAssets.locate("require.min.js"))"></script>
</head>
js_init.js(require.js data-main)
function test(){
return console.log('test');
}
require("jquery",test);
我收到错误&#34;未捕获的TypeError:对象不是函数&#34;
另外,我尝试在主js中使用define。它无法找到依赖关系,它正在寻找与主js在同一文件夹中的lib。
define([ 'knockout'],
function(ko) {
console.log('hello world')
});
是完全破坏了requirejs + webjars集成还是我做了一些废话?请帮忙
答案 0 :(得分:1)
WebJars Play2 Activator Template所有这些东西都在其中。所以你应该比较你的东西。
我认为data-main="@routes.Assets.versioned("js/koapp/js_init")"
需要包含.js
扩展名,例如:data-main="@routes.Assets.versioned("js/koapp/js_init.js")"
。
此外,/vassets
路线应为:
GET /vassets/*file controllers.Assets.versioned(path="/public", file: Asset)
请注意Asset
参数上的file
类型。