web-dev-qa-db-fra.com

express: comment envoyer du html avec css en utilisant sendFile?

var app = require('express')();

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

J'ai utilisé le code node.js ci-dessus pour envoyer un fichier html. Pour obtenir le format html, je dois envoyer un autre fichier css (style.css).
Ma question est: comment puis-je envoyer ces deux fichiers (index.html et style.css) à l'aide de sendFile () et les intégrer ensemble côté client?

15
neolicd

Le navigateur devrait charger style.css seul, vous pouvez donc en faire un itinéraire:

app.get('/style.css', function(req, res) {
  res.sendFile(__dirname + "/" + "style.css");
});

Cependant, cela deviendrait très lourd très rapidement à mesure que vous ajoutez des fichiers. Express fournit une méthode intégrée pour servir des fichiers statiques:

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

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

Gardez à l'esprit que si index.html est dans le même répertoire que le code de votre serveur, vous servirez également le code du serveur sous forme de fichiers statiques, ce qui n'est pas souhaitable.

Au lieu de cela, vous devez déplacer index.html, vos css, images, scripts, etc. dans un sous-répertoire tel que celui nommé public et utilisez:

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

Si vous faites cela, Express servira index.html automatiquement et vous pouvez supprimer votre app.get("/" ainsi que.

32
Explosion Pills