Node.js:加载包含在没有Express / frameworks的HTML文件中的.js和.css文件

时间:2014-11-13 16:20:03

标签: javascript html node.js

如何加载与Node.js一起显示的HTML文件中包含的.js .csv和.css文件? (没有Express这样的框架)

E.g。 <script src="clock.js"></script>

在Firefox中,它显示页面fs.readFile('./ index.html')正在请求clock.js,jquery.js等作为html文件,可能是因为response.writeHead是text / HTML

有办法吗?

if file included in index.html = .js
set writeHead to application/javascript

if file included in index.html = .css
set writeHead to text/css

事先没有指定index.html可能包含哪些文件? (例如,如果将来index.html还使用menu.js,则不需要更新node.js脚本)

有没有办法查看index.html请求的文件,然后修改这些文件的标题(例如.js有application / javascript)?

1 个答案:

答案 0 :(得分:1)

这是你要找的东西吗?

    var http = require("http");
    var fs = require("fs");
    var path = require("path");
    var server = http.createServer(function(request, response) {
        //typically what will happen here is that you will see
        //see the request for the page (index.html?) first and
        //then the browser's subsequent requests for js, css etc files
        var url = request.url;
        var file = //do something clever to extract the file name from the url ( url.split("/")?)
        var html = fs.readFileSync(file,"utf-8");
        //probably want to check the file extension here to determine the Content-Type
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    });

server.listen(8081);
console.log("Server is listening");

有点农业,你可能会遇到路由的各种问题 - 但它的想法。