节点.js:加载HTML文件中包含的.js和.css文件,而不使用Express/框架

Node.js : Load .js and .css files included in HTML file without Express/frameworks

本文关键字:文件 js Express 框架 HTML 加载 包含 节点 css      更新时间:2023-09-26

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

例如 <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

没有事先指定索引.html可以包括哪些文件?(例如,如果将来 index.html 也使用 menu.js,则无需更新 node.js 脚本)

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

这是你要找的那种东西吗?

    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");

有点农业,你可能会遇到各种路由问题 - 但这就是这个想法。