0

我正在尝试使用 node.js 和 express 提供带有链接 js 脚本的 html 页面。这是提供页面的服务器:

var express = require("express");
var app2 = express();
app2.get('/', function(req, res) {
   res.sendfile('./index.html');
});
app2.listen(process.env.VCAP_APP_PORT || 3000);

这是页面:

<!DOCTYPE html>
<html>
<head>
    <title>Demo</title>
</head>
<body>
    <h1>Demo</h1>
    <script src="/js/socket.io.js"></script>
    <script src="/js/codice.js"></script>
</body>

如您所见,我的 js 文件夹中有两个 js 脚本,但是当我启动页面时它们没有加载。我能做些什么?

4

1 回答 1

2

您通常要做的是将任何公共资源(JavaScript 文件、CSS 文件、图像等)放在一个目录中(Express 默认将其命名为公共),然后在您的调用中使用express.static中间件:app.configure

app.configure(function () {
    // Various other middleware functions...
    app.use(express.static(path.join(__dirname, "public")));
});

这有效地运行了一个静态文件服务器,它将返回公共目录中的任何文件。目前,您的浏览器正在请求您的 JS 文件,但 Express 服务器不知道如何处理它们。他们最终会超时。

如果您使用全局express可执行文件生成应用程序的初始状态(如果您通过 npm 全局安装 Express 则可用),它将为您设置大部分内容。

于 2013-02-11T11:06:17.213 回答