我正试图将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')
,它开始工作