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

Javascript 如何在Node.js和Jade中使用客户端Jquery?,javascript,jquery,node.js,pug,Javascript,Jquery,Node.js,Pug,我正在尝试将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="pub

我正在尝试将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>

$(文档).ready(函数(){
警惕(“你好”);
}); 
然而,当我的应用程序启动时,我没有收到任何警报。此外,当我尝试直接访问
http://localhost:3000/public/javascripts/jquery-min.js
我收到一个错误:
无法获取/public/javascripts/jquery-min.js


这是预期的吗?我必须做些什么才能从我的应用程序中访问jquery代码?

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

我猜您还没有告诉您的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'));
http://localhost:3000/javascripts/jquery-min.js
它将查找公用文件夹中的文件,因此如果要引用任何文件,不必在其前面放置“/public”。所以这是行不通的:

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

script(type='text/javascript' src='javascripts/jquery-min.js')
要直接获取文件,其工作原理相同,您必须省略“/public”,并按如下方式使用它:

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));
http://localhost:3000/javascripts/jquery-min.js

你用什么为你的客户提供你的html?你是在制作自己的路由器/服务器,还是在使用Express之类的东西?嗯,不,我有。当我尝试直接访问页面时,是否会出现无法获取资源错误?它必须进入/public还是可以进入/public/javascripts?您的
jquery-min.js
文件必须位于
/public/javascripts
下,Express才能找到它,因为这是您的Jade文件中指定的路径。另外,您是否可以检查您的文件是否实际命名为
jquery-min.js
?也就是说,在
jquery
min
之间有一个破折号。缩小的文件通常是
*.min.js
,当您在自己的答案中调用CDN时,您就是这样调用它的。是的,它的名称是jquery-min.js。在下载itTry并到达另一个静态文件后,我亲自命名了它。例如,在
/public/
目录下创建一个文件
test.txt
,然后尝试从客户端请求它。你看了吗?