J'ai récemment le problème que je n'obtiens pas comment les chemins de HTML dans le nœud JS fonctionnent. Je lie les scripts de mon index.html comme normal - relatif au fichier de l'index.html (fichier nœud.js et index.html sont dans le même répertoire "res.sendfile (__ dirname + '/index.html');"); Mais si je l'ouvre dans le navigateur exécuté avec noeud JS, les statistiques "ne peuvent pas obtenir blabla" pour les scripts. Au lieu de cela, ouvrez-le en cliquant simplement sur index.html sans nœud JS ces chemins fonctionnent! Comment dois-je écrire des chemins HTML pour le nœud JS?
var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server), port = Number(process.env.PORT || 3000), server.listen(port); app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); });
5 Réponses :
Regardez ceci:
app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); });
Vous devez configurer Express sur les fichiers statiques du serveur, par exemple, mettre tous les fichiers statiques sous un répertoire appelé "Public"
p>
var express = require('express'); var app = express(); var path = require('path'); // viewed at http://localhost:8080 app.get('/', function(req, res) { res.sendFile(path.join(__dirname + '/index.html')); }); app.listen(8080);
Lorsque vous écrivez: Il ne servira que le fichier index.html, et non les autres scripts et feuilles de style JS que vous avez ajoutés dans votre HTML. P> là sont de 2 façons de résoudre ce problème: p> pour les deux, je suggérerais d'utiliser le module "chemin". p> solution 1: p> var path = require('path')
app.use(express.static('public'))
app.get('/',function(req,res){
res.sendFile(path.resolve(__dirname,'/index.html')
})
Vous pouvez utiliser
app.use(express.static(path.join(__dirname, "folder-name")));
Habituellement, je mets tous mes fichiers statiques dans un dossier séparé nommé "Actif"
Je configurie une voie statique comme indiqué ci-dessous: p> Entrez le code ici CODE>
app.use('/assets', express.static('assets'));
Ce code fonctionne sur mon PC en fait. XD. Peut-être que quelque chose ne va pas avec les autorisations?