【问题标题】:Style sheet - not loading with web page样式表 - 不加载网页
【发布时间】:2016-02-14 23:21:23
【问题描述】:

我正在运行 nodejs 的本地副本,并获取了一些运行 Web 服务并在启动时引用本地 index.html 的代码。该服务在我的桌面本地运行。

我一直在玩 CSS,发现无论我做什么,样式表都不会加载,从样式表中获取配置并将其放入一些 <style> 元素中可以正常工作。但由于某种原因,它没有读取样式表。

样式表的位置是:c:\program files\nodejs\default.css

HTML 代码:

<link rel="stylesheet" type="text/css" href="default.css" />

这与index.jsindex.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');

【问题讨论】:

  • 请格式化您的代码,不可读!

标签: javascript html css


【解决方案1】:

您的服务器:

http.createServer(function (req, res){
   fs.readFile('index.html'

... 被配置为忽略请求中的所有内容并始终返回index.html 的内容。

所以当浏览器请求样式表时,它会得到index.html

您需要注意路径(将在请求中)并提供适当的内容(用于提供静态文件意味着将其映射到文件系统,确定文件是否存在,然后加载该文件)文件或 404 消息),具有适当的内容类型(因此您需要确定每种文件的类型)和状态代码。

这是一项重要的工作,不值得重新发明轮子,因此最好通过为 Node 找到一个静态文件服务模块(Google 出现 node-static)(或用 Lighttpd 之类的东西替换 Node 或Apache HTTPD)。

如果您想提供动态内容和静态内容,那么Express 是一个受欢迎的选择(并且有support for static files)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2014-07-14
    • 2010-09-26
    • 1970-01-01
    相关资源
    最近更新 更多