我正在运行一个呈现玉文件的网络服务器。在玉文件中我有一些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文件。所有文件都在同一个文件夹中。
有什么建议吗?
答案 0 :(得分:1)
Jade是一种HTML呈现工具,因此它呈现标准的<script>
标记。它不会将JS编译为HTML文件本身。您需要在case
中提供处理程序来处理任何相关文件,以便浏览器可以获取它们。
以下是此特定情况的示例,假设您的myJSFile.js与服务器文件位于同一目录中。
case '/myJSFile.js':
fs.createReadStream(__dirname + path).pipe(res);
break;