gpt4 book ai didi

javascript - Node.js 服务器出现脚本和图像问题

转载 作者:行者123 更新时间:2023-11-30 18:18:59 25 4
gpt4 key购买 nike

我刚开始使用 node js,我已经在上面移动了我的一个网站:

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

var app = http.createServer(function (req, res) {

fs.readFile('./index.html', 'utf-8', function(error, content) {
res.writeHead(200, {'Content-Type' : 'text/html'});
res.end(content);
});
});
app.listen(8080);

index.html 是我的网站主页。只有 html 它可以工作,但如果我在其中放置标签(例如包括 jquery),它会在 firebug 中给出 JS 错误:未捕获的语法错误:jquery.js 中的意外标记 <,然后当然是“$ 未定义”。它也不加载图像。

我真的不需要做一些路由或使用 Express 框架或任何东西,它只是一个简单的单页网站。我做错了什么?

最佳答案

您的服务器未处理对图像或其他资源的请求。所有请求都得到与 ./index.html 页面相同的响应。

这意味着如果页面中包含外部脚本或图像,当浏览器为这些资源发出请求时,将交付原始 index.html 页面。

NodeJS 相当底层。您需要将服务器设置为根据每个请求的 URL 手动处理对不同类型资源的请求。

最好的办法是通读一些 NodeJS 教程。他们应该涵盖服务内容的基础知识,尽管他们中的许多人不会处理较低级别的细节,并且会建议 Connect 或 Express 等包。

将您的代码更改为此,您将看到所请求的所有资源。

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

var app = http.createServer(function (req, res) {

var pathname = url.parse(req.url).pathname;
var ext = path.extname(pathname).toLowerCase();

console.log(pathname);

if (ext === ".html") {
fs.readFile('./index.html', 'utf-8', function(error, content) {
res.writeHead(200, {'Content-Type' : 'text/html'});
res.end(content);
});
}
});
app.listen(8080);

关于javascript - Node.js 服务器出现脚本和图像问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12546290/

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