Как создать сервер node.js html с css - PullRequest
1 голос
/ 02 августа 2020

Я пытаюсь создать простой node.js сервер для html с использованием http и express

Он работает, но css не показывает

Вот код моего server

const express = require("express");
const app = express();

app.use(express.static("css"));

var router = express.Router()

app.use('/',router)

router.get("/", (req, res) => {
  res.sendFile(__dirname + "/index.htm")
})

app.listen(8080)

И код моего сервера, созданный с использованием http

const http = require("http")
const port = 8080
const fs = require('fs')

const server = http.createServer(function(req,res) {
    fs.readFile('./index.html', (error, data) => {
        if(error) {
            res.writeHead("404")
              res.write("Error. File not found.")
        } else {
            res.use
            res.write(data)
        }
        res.end();
    })

})

server.listen(port, function(error) {
    if(error) {
        console.log(error)
    } else {
        console.log("server is listening on port " + port)
    }
})

весь мой html код

<!DOCTYPE html>
<html lang="en">
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Domodinak</title>
        <link rel="stylesheet" href="css/style.css">
    </head>
    <body>
        <p>Hello world</p>
    </body>
</html>

также css

body {
    background-color: deeppink;
}

если знаете как мне помочь, помогите пожалуйста :)

1 Ответ

0 голосов
/ 02 августа 2020

Убедитесь, что вы правильно указываете папку css. Это зависит от структуры папок вашего проекта. Рекомендуется сохранить файлы stati c в папке с именем public, а затем сохранить файлы в отдельной папке, например js и css. Например, я предполагаю, что у вас есть папка src, которая является вашим каталогом для файла express сервера, другая папка рядом с папкой src, у вас есть папка public с подпапкой css. Поместите файл таблицы стилей в подпапку css, а файл html только в папку public, а затем измените свой код на этот:

const express = require("express");
const path = require("path");
const app = express();

app.use(express.static(path.join(__dirname, "../public")));

// var router = express.Router()

// app.use('/',router)

// router.get("/", (req, res) => {
//  res.sendFile(__dirname + "/index.htm")
// })

app.listen(8080)

Структура вашего проекта должна выглядеть так:

|-public -| css -| style.css
          index.html
|-src -| app.js

Запустите файл сервера, затем проверьте свой браузер с помощью localhost:8080. Он обслуживает index.html из каталога stati c, который вы передали в express ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...