Node.js sert du HTML, mais ne peut pas charger les fichiers de script dans la page servie
J'essaie de créer une petite page de connexion en utilisant une base de données mongoDB et Node.js + express. Je suis nouveau sur Node.js, donc peut-être que la solution est plus facile que je ne le pensais. Le problème est: lorsque je sers le fichier HTML lors de la connexion à la page du serveur, je ne peux pas utiliser le fichier JavaScript référencé dans le fichier html. Comment puis-je y remédier? Ps les fichiers index.html et client.js sont tous situés dans un dossier nommé "client".
Code:
var express = require('express');
var path = require('path');
var app = express();
app.use(express.static(__dirname + 'client'));
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/client/index.html'));
});
Fichier HTML:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Login</title>
<meta name="description" content="Login Page">
<meta name="author" content="AlbertoCoder">
<script src="/client/client.js"></script>
</head>
<body>
</body>
</html>
Vous pouvez l'utiliser, mais vous devez servir ce fichier javascript à partir de votre serveur via un chemin valide.
Dans votre HTML, vous essayez de récupérer le fichier javascript à partir de /client/client.js
L'indice ici est:
Imaginez l'URL suivante de votre serveur http://myserver:8080/
Maintenant, votre code HTML tente de récupérer le fichier js via http://myserver:8080/client/client.js
Comme vous pouvez le voir, votre serveur ne dessert pas ces actifs, vous ne pourrez donc pas récupérer ce fichier js.
Procédez comme suit:
app.get('/client/client.js', function(req, res) {
res.sendFile(path.join(__dirname + '/client.js'));
});
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/client/index.html'));
});