Weet u dat u de index.html voor elk verzoek verzendt?
Wijzig dit:
router.get('*', function(request, response) {
response.sendfile('./public/index.html');
});
Hierop:
app.use(express.static(path.join(__dirname, 'public')));
Of dit:
app.use('/path', express.static(path.join(__dirname, 'public')));
als u de statische bestanden onder een ander pad dan /
. ging aanbieden .
Zorg ervoor dat u dit aan het begin van uw bestand toevoegt:
var path = require('path');
Zorg er ook voor dat u daadwerkelijk de public
directory op de juiste plaats en dat het de index.html
. bevat en andere vereiste bestanden.
Natuurlijk kun je andere problemen hebben, aangezien je duidelijk niet je volledige code hebt toegevoegd.
Zie mijn voorbeeld op GitHub als je statische bestanden wilt aanbieden met Express:
- https://github.com/rsp/node-express-static-example
Het is een werkend voorbeeld dat u kunt downloaden, uw eigen statische inhoud in de juiste map kunt plaatsen en kunt aanpassen aan uw eigen behoeften.
Meer voorbeelden om hetzelfde te doen met en zonder Express:
- https://github.com/rsp/node-static-http-servers
Andere gerelateerde antwoorden:
- Een afbeelding weergeven met nodejs
- Kan bron niet laden uit dezelfde map bij het omleiden van Javascript
- onload js-oproep werkt niet met node
- De inhoud van de hele map naar de klant sturen met express
- Node JS levert geen statische afbeelding