我试图在我的胡子模板文件中包含一个JS脚本。
<html>
<head>
<script id="{{app.js}}" type="text/mustache"></script>
</head>
<body>
<div>
Users:
<ul>
{{#users}}
<li>{{name}}</li>
{{/users}}
</ul>
</div>
</body>
</html>
它位于src/main/resources/templates/users.mustache
。我在src/main/resources/public/app.js
中有一个JS脚本。
关于后端的几句话。我使用Finatra
框架支持Mustache开箱即用:
get("/users") {
req: Request => {
response.ok.view("/users.mustache", Users)
}
}
所以这是我的问题。如何在我的Mustache模板中添加JS脚本?
UPD
我也尝试使用
<script src='{{path}}/public/app.js' type='text/javascript'></script>
但我的应用仍然没有看到该剧本。
UPD2 (thx to @nuc)
我没有找到任何好的解决方案,只有这一个:
get("/public/:*") {
req: Request => {
req.params.get("*") match {
case Some(fn) =>
val file = new File("/Users/fink/projects/finatra-demo/src/main/resources/public/" + fn)
response.ok.file(file)
case None => {
response.notFound("Oh no!")
}
}
}
}
我将所有资产都放到了
src/main/resources/public/*
在我看来,它应该是<script src='/public/js/app.js' type='text/javascript'></script>
答案 0 :(得分:-1)
你需要有一个额外的路径来服务你的js文件,命名为你正在使用的前缀/约定。
get("/assets/js/:file") { request: Request =>
response.ok.file(request.getParam(file))
}