Файл HTML не попадает в файл CSS

#javascript #node.js #express

#javascript #node.js #экспресс

Вопрос:

Я новичок в express, js и node.js

Я следил за множеством руководств по express, и я не понимаю, почему index.html file не вызывайте соответствующий файл CSS:

мой server.js файл:

 const path = require('path')
const express = require('express');

var app = express();

app.use(express.static('public'));

app.get('/0', (req, res) => {
    res.sendFile('index.html', {root : __dirname });
})

var server = app.listen(8081, function () {
    var host = server.address().address
    var port = server.address().port
    console.log("Example app listening at http://%s:%s", host, port)
 })
  

мой index.html файл:

 <!DOCTYPE html>
<html lang="en">
<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">
    <link rel="stylesheet" href="/public/css/style.css">
    <title>Pt02 Ch02 Exercise 200</title>
</head>
<body>

  <div class="container">
    <div class="heading">Aidez-moi à arrêter de crier !</div>
    <div class="heading">Je veux rester en majuscules !</div>
  </div>
  
</body>
  

мой файл CSS:

 @import url('https://fonts.googleapis.com/css?family=Montserrat:100,900i');
html, body {
  font-family: 'Montserrat', sans-serif;
  height: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background-color: blue;
}

.container {
  height: 100%;
  align-items: center;
}

.heading {
  width: 100%;
  padding: 1.5rem 2.5rem;
  margin-bottom: 1.5rem;
  background: #15DEA5;
  color: #FFF;
  font-size: 2rem;
  text-transform: uppercase;
}
  

и разные папки проекта:

введите описание изображения здесь

когда я печатаю localhost:8081/0 , результат не является правильным результатом, CSS не активен.

Что я делаю не так? спасибо за помощь

Комментарии:

1. Это public css имя папки выглядит странно, если это не имя VSCode, но попробуйте <link rel="stylesheet" href="/css/style.css"> вместо этого

Ответ №1:

express.static привязывает public папку к корню сайта ( / ), поэтому после этого вам нужно включить статические файлы без public указания пути:

     <link rel="stylesheet" href="/css/style.css">
  

Ответ №2:

Вы уверены, что ваш CSS находится в разделе public/ css? и не public css Я не эксперт, но я думаю, что это должно быть проблемой. Папка проекта называется publiccss, а ваша таблица стилей rel подключена к public/css .

РЕДАКТИРОВАТЬ Пользователь выше сказал правильный ответ, я думаю, статические папки не должны быть перечислены в html