Manchmal für bestimmte Fälle wie dieser, ist es einfach genug, um Ihren eigenen Server zu schreiben:
'use strict';
var host = '127.0.0.1', port = 3333;
var path = require('path');
var app = require('express')();
app.get('*', (req, res) => res.sendFile(path.join(__dirname, 'index.html')));
app.listen(port,() => console.log(`Listening on http://${host}:${port}/`));
Aber denken Sie daran, dass, wenn jeder Pfad index.html
kehrt dann in die index.html
Sie nicht so etwas wie Bilder verweisen können, Stil Blätter oder clientseitige JavaScript-Dateien. Nicht nur mit dem oben gezeigten Code, sondern mit jeder Lösung, die die gleiche Antwort (index.html
) an jede Anfrage sendet.
Unter Umständen müssen Sie auf einige Ausnahmen machen und es ist nicht schwer mit Express:
'use strict';
var host = '127.0.0.1', port = 3333;
var path = require('path');
var app = require('express')();
app.get('/x.png', (req, res) => res.sendFile(path.join(__dirname, 'x.png')));
app.get('*', (req, res) => res.sendFile(path.join(__dirname, 'index.html')));
app.listen(port,() => console.log(`Listening on http://${host}:${port}/`));
Nur bedenken Sie, dass die Ausnahmen nach oben gehen, weil die erste passende Route wird für eine bestimmte Anforderung verwendet werden .
Natürlich müssen Sie diesen Code z. Express app.js
, installieren:
npm install express
und starten Sie es mit:
node app.js
Es ist komplizierter als eine fertige Lösung mit (obwohl, wie Sie sehen können, nicht so kompliziert entweder), aber sie haben viel mehr Flexibilität, wie genau Sie sich verhalten wollen. Es ist auch einfach Protokollierung hinzuzufügen usw.
'-P oder --proxy Proxies alle Anfragen, die nicht lokal gelöst werden kann, um die gegebene URL. Beispiel: -P http: // someurl.com' => Könnten Sie versuchen, http-server -P http: // localhost: 8080/'? – DrakaSAN
So funktioniert die Lösung in [meine Antwort] (http://stackoverflow.com/questions/39744309/node-http-server-to-respondd-with-index-html-to-any-request/39744827#39744827) für dich? – rsp