0

我正在运行一个呈现玉文件的网络服务器。在玉文件中,我有一些 javascript 文件。页面呈现正常,但未找到 javascript 文件。

节点服务器

var http = require('http')
  , url = require('url')
  , fs = require('fs')
  , jade = require('jade')
  , server;

server = http.createServer(function(req, res) {
  var path = url.parse(req.url).pathname;

  switch (path) {

    case '/audio':
        var options = {pretty: true};
        jade.renderFile('myJadeFile.jade', options, function(err, html) {
          if (err) return send404(res);
          res.writeHead(200, {"Content-Type": "text/html"});
          res.write(html, 'utf8');
          res.end();
        });
        break;

    default: send404(res);
  }
});

function send404(res) {
  res.writeHead(404);
  res.write('404');
  res.end();
}

server.listen(3000, function() {
  console.log("listening on port:3000");
});

玉文件

!!! 5
html(lang="en")
  head
    meta(charset="UTF-8")
    title Please Work
    script(src="myJSFile.js")
  body
    #container
      h1 It worked!

我收到此错误:
GET http://localhost:3000/myJSFile.js 404 (Not Found)

它没有找到文件,我不确定我必须在服务器端的翡翠选项上放什么才能找到 javascript 文件。所有文件都在同一个文件夹中。

有什么建议么?

4

1 回答 1

1

Jade 是一个 HTML 渲染工具,所以它是渲染一个标准的<script>标签。它不会将 JS 编译成 HTML 文件本身。您将需要在您的文件中提供处理程序case来处理任何依赖文件,以便浏览器可以获取它们。

这是此特定情况的示例,假设您的 myJSFile.js 与服务器文件位于同一目录中。

case '/myJSFile.js':
  fs.createReadStream(__dirname + path).pipe(res);
  break;
于 2013-03-04T00:42:23.993 回答