如何在Node.js和Jade中使用客户端Jquery



我正试图将jquery代码放在我的node.js应用程序的主页上。这是我到目前为止所拥有的:

  script(type='text/javascript' src='public/javascripts/jquery-min.js')
  script.
    $( document ).ready(function() {
      alert('hello');
    });

生成html

<script type="text/javascript" src="public/javascripts/jquery-min.js"></script>

<script>$( document ).ready(function() {
  alert('hello'); 
}); 
</script>

当我的应用程序启动时,我没有收到警报。此外,当我尝试直接在http://localhost:3000/public/javascripts/jquery-min.js访问该资源时,我得到一个错误:Cannot GET /public/javascripts/jquery-min.js

这是预期的吗?是否有一些我必须做的,以便从我的应用程序访问jquery代码?

我猜您还没有告诉Express服务器在哪里查找静态文件。在Express配置中添加以下行:

// Assuming you have a line such as var app = exports.app = express();
app.use(express.static(path.join(__dirname, 'public')));

…并且您放入public目录中的任何内容都可以通过Express访问。

在告诉Express在哪里查找静态文件之后:

var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));

它将在公共文件夹中查找文件,所以如果你想引用任何文件,你不必在它前面加上"/public"。所以这行不通:

script(type='text/javascript' src='public/javascripts/jquery-min.js')

但是这将:

script(type='text/javascript' src='javascripts/jquery-min.js')

对于直接获取文件,它的工作原理相同,您必须省略"/public"并像这样使用:

http://localhost:3000/javascripts/jquery-min.js

我不知道为什么资源不可用。但通过使用script(type='text/javascript' src='http://code.jquery.com/jquery.min.js'),它开始工作

最新更新