2017-10-18 7 views
3

J'essaie actuellement de mettre en place un flux de réinitialisation de mot de passe en utilisant Pug (anciennement connu sous le nom de Jade) et Express.Pourquoi mes adresses URL router.get sont-elles express avec plusieurs chemins de lecture de texte?

Pour certaines raisons, les requêtes GET, y compris les URL avec des chemins d'accès multiples, afficheront uniquement mes fichiers pug avec du texte. Aucune image ou style n'est chargé.

Par exemple:

app.get('/example', (req, res) => { 
    res.render('test') 
}) 

va rendre le fichier de test avec un style et des images parfaitement. Cependant:

app.get('/example/test', (req, res) => { 
    res.render('test') 
}) 

rendra le fichier de test avec du texte seulement. Images et style manquants.

Des idées sur ce qui peut être à l'origine de ce problème?

+1

Vos URL d'image sont-elles 'images/one.jpg' etc.? Si oui, quand vous allez' '/ example/test', l'url deviendra'/example/images/one.jpg' ... Essayez de faire vos urls absolus '/ images/one.jpg' .. etc – Keith

+0

Haha pas moyen, vous aviez raison. Je vous remercie! – Leafyshark

Répondre

1
  1. ajoutez app.use(express.static(__dirname+"/public")); dans votre server.js.
  2. créer un nouveau dossier appelé public sur votre workspace où votre server.js existe.
  3. Créez maintenant les dossiers styles et images à l'intérieur de public et placez vos fichiers css et fichiers d'images dans chaque dossier.
  4. changez votre chemin de CSS sur test.html à /styles/test.css par exemple. Vous devriez l'avoir maintenant.

La méthode statique définie dans express recherchera public dossier que le chemin racine absolue et maintenant peu importe combien de couches d'acheminer les appels que vous obtenez, vous pouvez accéder à vos styles et images dossiers sans la nécessité de retrouver la séquence chemin relatif de vos fichiers css/images.