gpt4 book ai didi

javascript - 通过 NodeJS 使用 HTML 文件加载 JS 文件的正确方法

转载 作者:数据小太阳 更新时间:2023-10-29 05:02:49 32 4
gpt4 key购买 nike

我无法让包含在提供的 defualt.htm 页面头部的内容“工作”。 html 在 dom 中加载,只有 CSS 和 JS 文件失败。有更好的选择吗?我想将解决方案保留在 NodeJS 中,但也可以对 socket.io 和 express 开放。

谢谢,下面是我正在使用的。

NodeJS 服务页面

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

fs.readFile(__dirname+'/default.htm', 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(port.number);
});

Default.html 页面

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="objects/css/site.css" type="text/css" />
<script src="objects/js/jquery.min.js" type="text/javascript"></script>
<script src="objects/js/site.min.js" type="text/javascript"></script>
</head>

<body></body>

</html>

最佳答案

您的 Javascript 和样式失败,因为它们不存在。您当前的网络服务器仅发送一条路由,即根路由。相反,您需要允许使用多条路线。 ExpressJS 以更简单的方式为您完成此操作,但没有它仍然很有可能。

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


var server = http.createServer(function(request, response){
var header_type = "";
var data = "";
var get = function (uri, callback) {
// match `request.url` with uri with a regex or something.
var regex = uri;
if (request.url.match(regex)) {
callback();
}
};

var render = function (resource) {
// resource = name of resource (i.e. index, site.min, jquery.min)
fs.readFile( __dirname + "/" + resource, function(err, file) {
if (err) return false; // Do something with the error....
header_type = ""; // Do some checking to find out what header type you must send.
data = file;
}
};

get('/', function(req, res, next) {
// Send out the index.html
render('index.html');
next();
});


get('/javascript.min', function(req, res, next) {
render('javascript.js');
next();
});


});

server.listen(8080);

这可能会让您入门,但您必须自己实现一些东西,例如 next()。一个非常简单但有效的解决方案。

响应静态文件的另一种解决方案是在 http.createServer 回调中创建一个捕捉器。在 get 方法中,如果 uri 不匹配,那么您将在 public 文件夹中查找与文件系统结构匹配的完整 uri。

关于javascript - 通过 NodeJS 使用 HTML 文件加载 JS 文件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13339472/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com