我正在运行 nodejs 的本地副本,并获取了一些运行 Web 服务并引用本地 index.html
的代码。在启动时。此服务在我的桌面上本地运行。
我一直在研究 CSS,发现无论我做什么,样式表都不会加载,从样式表中获取配置并将其放在某个 <style>
中。元素工作正常。但出于某种原因,它没有读取样式表。
样式表的位置是:c:\program files\nodejs\default.css
HTML代码:
<link rel="stylesheet" type="text/css" href="default.css" />
这与 index.js
位于同一位置, index.html
.具有读取文件的权限等。
关于为什么这可能无法加载的任何想法。
index.js
代码:
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res){
fs.readFile('index.html', function (err, data){
res.writeHead(200, {
'Content-Type': 'text/html',
'Content-Length' : data.length
});
res.write(data);
res.end();
});
}).listen(1337, '127.0.0.1');
最佳答案
您的服务器:
http.createServer(function (req, res){ fs.readFile('index.html'
...配置为忽略请求中的所有内容并始终返回 index.html
的内容。
因此,当浏览器请求样式表时,它会得到 index.html
。
您需要注意路径(将在请求中)并提供适当的内容(对于提供静态文件意味着将其映射到文件系统,确定文件是否存在,然后加载该文件文件或 404 消息),以及适当的内容类型(因此您需要为每种文件确定类型)和状态代码。
这是一项重要的工作,不值得重新发明轮子,因此最好通过为 Node 找到一个静态文件服务模块(Google 出现 node-static)(或用 Lighttpd 或 Apache HTTPD)。
如果您想同时提供动态内容和静态内容,那么 Express是一个受欢迎的选择(并且有 support for static files )。
关于javascript - 样式表 - 不加载网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33691701/