Jade无法链接到javascript文件+ node.js

时间:2013-03-03 23:33:09

标签: node.js pug

我正在运行一个呈现玉文件的网络服务器。在玉文件中我有一些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)

它没有找到该文件,我不知道我必须在服务器端jade选项上找到javascript文件。所有文件都在同一个文件夹中。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

Jade是一种HTML呈现工具,因此它呈现标准的<script>标记。它不会将JS编译为HTML文件本身。您需要在case中提供处理程序来处理任何相关文件,以便浏览器可以获取它们。

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

case '/myJSFile.js':
  fs.createReadStream(__dirname + path).pipe(res);
  break;