2012-10-24 64 views
0

我刚刚开始使用node.js,并试图为静态index.html文件提供服务,该文件当然会加载CSS,JS和图像。我曾尝试通过使用fs.readFile和node-static的serveFile来读取index.html文件。为node.js提供静态文件但不适用于链接的图像/ css/js

两者都提供该文件,但它不能找到包含的CSS,JS和图像。也许这是我的路径错误,但这里是我的目录结构。

Workspace structure

我已经习惯了从index.html文件,这些引用的文件相对路径。所以只需简单的css/main.css。此外,如果他们需要相对于server.js文件,我做了../css/main.css。最后,如果路径必须是绝对路径,并且index.html目录是root,那么就是/css/main.css。没有加载。

我在做什么错?

var http = require('http'), 
    fs = require('fs'); 


fs.readFile('../index.html', function (err, html) { 
    if (err) { 
     throw err; 
    }  
    http.createServer(function(request, response) { 
     response.writeHeader(200, {"Content-Type": "text/html"}); 
     response.write(html); 
     response.end(); 
    }).listen(8080); 
}); 

这个服务文件很好。

正如我所说,我还在学习。

节点静态'API'不是很彻底,所以我恢复了上述路线。

谢谢。

回答

4

使用上面创建的服务器,即使请求是针对图像或css文件,您也会为每个请求发送HTML文件的内容。您必须检查进入的请求对象以查看用户请求的内容,然后发送相应的文件并设置适当的内容类型。

或者,你可以让你的生活更容易,使用快速http://expressjs.com

快速处理大部分的这些东西对你来说,包括静态的文件服务器。

3

我的朋友,不要浪费你自己的时间重新发明轮子

使用Express框架,据我所知,它非常舒适,并且很容易处理这些事情。

相关问题