— DEBUT - Edit : Sujet résolu
La ligne app.use(express.static(__dirname));
semble devoir être placée avant tout app.get
et le code qui suit fonctionne bien. (autre modif : pas de "404" dans l’appel redirect('page_not_found.html')
).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | const express = require('express'); const app = express(); app.use(express.static(__dirname)); app.get("/", (req, res) => { res.redirect('index.html'); }); app.get('*', (req, res) => { res.redirect('page_not_found.html') }); app.listen(80, 'localhost'); |
— FIN - Edit : Sujet résolu
Bonjour à tous,
J’essaie de mettre en place un serveur Node.js à l’aide du paquetage Express en utilisant la fonction redirect(status, path)
.
Pour l’instant, je gère juste la page d’accueil et les cas de pages non-joignables (erreur 404).
Lorsque je désactive la gestion des pages non-joignables, l’accueil s’affiche correctement (ie. : la page index.html
s’affiche quand l’internaute se rend sur "localhost" ou "localhost/index.html"). Mais si je l’active, le message "Not Found. Redirecting to page_not_found.html" s’affiche pour les deux URL "localhost" et "localhost/index.html".
Or il faudrait cumuler les deux. C’est-à-dire que l’internaute charge la page d’accueil avec "localhost" et "localhost/index.html", et qu’il charge la page "page_not_found.html" si l’URL entrée ne correspond à aucun fichier du serveur.
Source
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | const express = require('express'); const app = express(); app.get("/", (req, res) => { res.redirect('index.html'); }); app.get('*', (req, res) => { // Deactivate (= comment this) to test the bug res.redirect(404, 'page_not_found.html') }); app.use(express.static(__dirname)); app.listen(80, 'localhost'); |
PS : je tiens vraiment à utiliser les fonctions get
et redirect
, donc pas de sendFile
ou autre.
Merci à vous, bonne journée et joyeux Noël