JavaScript根本不会运行

时间:2017-06-04 21:16:05

标签: javascript ruby sinatra

我有这个模板作为我的sinatra layout.erb

<!DOCTYPE html>
<html>
<head>
    <title>Invoicer</title>
    <link rel="stylesheet" href="/static/css/bootstrap.min.css">
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <link rel="stylesheet" href="/static/css/font-awesome.min.css">
</head>
<body>
    <nav class="navbar navbar-default">
       ...
    </nav>
    <div class="container">
        <%= yield %>
    </div>
    <%#<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>%>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
    <script src="/static/js/bootstrap.min.js"/>
    <script src="/static/js/jobs/new.js" />
</body>
</html>

和这个小小的javascript调用

console.log("running")
$('#datepicker').datepicker()

服务器获取对js文件的200次调用,但没有任何内容将打印到控制台或执行。

1 个答案:

答案 0 :(得分:3)

始终使用<script></script>

<script src="..." />不是有效标记。在解析HTML时,它认为<script src="/static/js/jobs/new.js" />位于<script src="/static/js/bootstrap.min.js"/>标记的正文中,如下所示:

...
<script src="/static/js/bootstrap.min.js">
  <script src="/static/js/jobs/new.js">
...

来自MDN <script> documentation

  

标记省略

     

无,开始和结束标记都是必需的。