play framework 2.1中的视图不处理javascript

play framework 2.1中的视图不处理javascript,javascript,playframework-2.0,Javascript,Playframework 2.0,我遇到了一堵墙:基本上,Javascript在我的游戏页面中似乎不起作用 因此,我有一个视图main.scala.html作为其他视图的模板。 此文件如下所示: @(page : String, title: String)(content: Html) <!DOCTYPE html> <html lang="en"> <head> <title>@title</title> <link rel="stylesh

我遇到了一堵墙:基本上,Javascript在我的游戏页面中似乎不起作用

因此,我有一个视图
main.scala.html
作为其他视图的模板。 此文件如下所示:

@(page : String, title: String)(content: Html)

<!DOCTYPE html>
<html lang="en">
<head>
    <title>@title</title>
    <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/bootstrap.min.css")">
    <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
    <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
    <script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
    <script src="@routes.Assets.at("javascripts/bootstrap.min.js")" type="text/javascript"></script>
</head>
<body>
<!--some stuff-->
@content
</body>
</html>
@(页面:字符串,标题:字符串)(内容:Html)
@头衔
@内容
因此,我尝试在视图主体中添加一个简单的

-首先在main.scala.html模板中

-然后在使用此模板的视图中

-最后,在一个thing.html中,没有链接,这与Play是一样的!我在浏览器中打开的框架:

<html lang="en">
<head>
    <title>title</title>
</head>
<body>
    <a href="#" onclick="alert('truc')">truc</a>
</body>

标题
只有第三个选项返回想要的结果:一个包含
东西的弹出窗口

我的问题是:为什么我的javascript不由play处理?我是否必须“
导入
”一些全局javascript功能才能使用它


感谢您的帮助,如果您需要更多信息,请告诉我。

Play会生成正常的HTML代码-浏览器不关心是哪种软件生成了它,所以我怀疑,您在头脑中的某个JS文件路径中有一些错误,因此它避免运行其他脚本,在浏览器中使用某种检查器来验证,确保所有资源都已正确下载。同时检查JS控制台,很可能显示了一些错误


另一方面,在视图中直接放置简单的JS通常是正确的,但是请记住,View的渲染器可能会考虑一些JS典型语法作为播放的标记,或者一些东西,因此,在渲染JS未被这个过程损坏后,仍然需要控制。对于希望使用更高级JS的视图,使用与

jquery.JS
bootstrap.JS

相同的方式从静态文件中包含JS绝对安全(也更舒适)

@main(title = "my title") {
 <h1>Other html<h1>
 <p>My js here</p>
 <a href="#" onclick="alert('truc')">truc</a>
}
@main(title=“我的标题”){
其他html
我的js在这里

}
附言:
如果它是有用的,请不要忘记您不应该再使用白色的headhtmlbody标记,它已经包含在内了。否则,您将没有有效的html,并且它将在所有浏览器中呈现为不好的状态

您的
main
模板看起来很好,您是否已将javascript放入
/public/javascripts
中,并且您的路由中是否有以下行:
GET/assets/*file controllers.assets.at(path=“/public”,file)
?我确实有路径
GET/assets/*file controllers.assets.at(path=“/public”,file)
,我的javascripts在
/public/javascripts
文件夹中。CSP阻止javascript是个问题。但是谢谢!注意,只有在主模板中声明了head、body和html标记后,才能去掉它们。如果我在一个使用主模板的视图中使用js,那么你的建议是相关的,但是在这里,我声明了主模板,所以我需要编写这些标记!这是CSP的一个问题。感谢JS控制台的建议。