Javascript 如何在Node.js和Jade中使用客户端Jquery?
我正在尝试将jquery代码放到node.js应用程序的主页上。这就是我到目前为止所做的: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
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
,然后尝试从客户端请求它。你看了吗?