express: Wie sende ich HTML zusammen mit CSS mit sendFile?

Lesezeit: 2 Minuten
var app = require('express')();

app.get("https://stackoverflow.com/", function(req, res) {
  res.sendFile(__dirname + "https://stackoverflow.com/" + "index.html");
});
<link rel="stylesheet" href="https://stackoverflow.com/questions/38757235/style.css">

Ich habe den obigen node.js-Code verwendet, um eine HTML-Datei zu senden. Um die HTML-Datei formatiert zu bekommen, muss ich eine andere CSS-Datei (style.css) senden.
Meine Frage ist: Wie kann ich diese beiden Dateien (index.html und style.css) mit sendFile() senden und zusammen auf der Clientseite integrieren?

Der Browser sollte geladen werden style.css allein, so dass Sie das als Route dienen können:

app.get('/style.css', function(req, res) {
  res.sendFile(__dirname + "https://stackoverflow.com/" + "https://stackoverflow.com/questions/38757235/style.css");
});

Dies wird jedoch sehr schnell sehr umständlich, wenn Sie weitere Dateien hinzufügen. Express bietet eine integrierte Möglichkeit, statische Dateien bereitzustellen:

https://expressjs.com/en/starter/static-files.html

const express = require("express");
const app = express();
app.use(express.static(__dirname));

Denken Sie daran, dass wenn index.html im selben Verzeichnis wie Ihr Servercode befindet, werden Sie den Servercode auch als statische Dateien bereitstellen, was unerwünscht ist.

Stattdessen sollten Sie sich bewegen index.htmlIhre CSS, Bilder, Skripte usw. in ein Unterverzeichnis wie z public und verwenden:

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

Wenn Sie dies tun, wird Express bedient index.html automatisch und Sie können Ihre entfernen app.get("https://stackoverflow.com/" auch.

  • Großartig! Übrigens, lädt der Browser style.css wegen des folgenden Codes?

    – neolicd

    4. August 2016 um 2:07 Uhr


  • Ja, es könnte sich lohnen, sich etwas HTML-Zeug anzusehen, um direkt ins Node-Zeug zu springen.

    – MickeyThreeSheds

    15. Juni 2018 um 23:22 Uhr

  • @Explosion Pills: Was ist, wenn Sie versuchen, das mit dem Postboten zu erreichen, wird Ihnen nur das HTML zurückgegeben

    – Shashank Gaurav

    2. Januar 2019 um 7:01 Uhr

  • @ShashankGaurav Ihre Frage verwirrt mich; Was willst du mit Postman machen?

    – Explosionspillen

    4. Januar 2019 um 17:54 Uhr

  • Ich habe alles entfernt, alle meine Dateien in einen Ordner hinzugefügt, hinzugefügt app.use(express.static("folderName")); und boom arbeitete in root / URL. Danke dafür!

    – Ylama

    12. April 2019 um 11:41 Uhr

1019160cookie-checkexpress: Wie sende ich HTML zusammen mit CSS mit sendFile?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy