首页 > 解决方案 > 路由将页面加载为没有 css 的纯文本 html。[节点js服务器]

问题描述

注意,我是 javascript 新手。因此,我正在尝试为我的页面设置基本路由。它可以工作,但css文件似乎没有加载到页面上。但是,如果我单击(例如)index.html文件,它会在浏览器上正常显示。作为参考,我的routes.js文件如下所示:

const url = require('url');
let fs = require('fs');

html = {
    render(path, response) {
        fs.readFile(path, null, function (error, data) {
            if (error) {
                response.writeHead(404);
                respone.write('file not found');
            } else {
                response.write(data);
            }
            response.end();
        });
    }
}

module.exports = {
    handleRequest(request, response) {
        response.writeHead(200, {
            'Content-Type': 'text/html'
        });

        let path = url.parse(request.url).pathname;

        switch (path) {
            case '/':
                html.render('../authorization_code/public/landing_page.html', response);
                break;
            case '/about':
                html.render('../components/about.html', response);
                break;
            default:
                response.writeHead(404);
                response.write('Route not found');
                response.end();
        }
    }
}

我的服务器是这样设置的:

var http = require('http');
var fs = require('fs');
var express = require('express'); // Express web server framework
var request = require('request'); // "Request" library
const url = require('url');
let router = require('./routes');

let handleRequest = (request, response) => {
  response.writeHead(200, {
      'Content-Type': 'text/html'
  });

};

http.createServer(router.handleRequest).listen(8888);

就像我说的,如果我直接打开一个.html文件,css 看起来应该是这样,所以并不是我以错误的方式引用样式表。是我的路由问题还是服务器创建问题?我应该添加一些关于再次包含并在某处加载 css 文件的内容吗?

PS:如果有办法改进标题以反映我的问题,请说出来。

标签: javascripthtmlcssnode.js

解决方案


推荐阅读