2017-10-16 6 views
0

Je crée une application CRUD dans Nodejs/Expressjs, le moteur de template est EJS. L'idée de la mise à jour est d'afficher user_id à partir d'une base de données et lorsque admin clique sur user_id, il devrait rediriger vers la page edit_team.ejs.L'opération nodejs/expressjs update (crUd) n'affiche pas les fichiers css

Cela fonctionne correctement, mais lors de la redirection vers la page edit_team.ejs, les fichiers css ne sont pas chargés. Je reçois l'erreur ci-dessous enter image description here

Pour tous les autres fichiers .ejs, tous les fichiers CSS sont chargés.

J'ai inclus le dossier 'public' dans le fichier app.js.

Code:

dossier Directory:

enter image description here

app.js:

app.use(express.static('app/public')); 

view_team.ejs

<a class="button" href='/edit_team/<%= team[i].team_id %>'> 
    <span class="glyphicon glyphicon-edit" aria-hidden="true"></span> 
</a> 

edit_team.js:

var express = require('express'); 
var path = require('path'); 
const { Client } = require('pg') 
const connectionString = 'postgresql://localhost:5432/idid'; 

//router object 
var router = express.Router(); 

router.get('/edit_team/:id', function(req, res){ 
res.render('login/edit_team'); 
}); 

module.exports = router; 

edit_team.ejs (coller uniquement section de tête):

<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title> 

</title> 
<!-- Bootstrap core CSS --> 
<link href="css/bootstrap.min.css" rel="stylesheet"> 
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font- 
    awesome.min.css" rel="stylesheet"> 
<link rel="stylesheet" type="text/css" href="css/style.css"> 

quelqu'un peut me aider s'il vous plaît essayer de comprendre ce qui ne va pas ici?

+0

Veuillez publier votre fichier server.js ou app.js ... ou le fichier que vous utilisez au démarrage. Il "semble" qu'il pourrait être que vous n'avez pas de service express de vos fichiers CSS en tant que contenu statique, mais je pourrais me tromper ici en raison du manque d'informations. – dvsoukup

+0

Ajouté Mais tous les autres fichiers de modèles fonctionnent correctement. Je pense que je ne remets pas correctement l'opération "edit" dans nodejs – jackysatpal

Répondre

0

Une URL telle que /edit_team/23 sert edit_team.ejs, qui contient le chemin relatif css/bootstrap.min.css. C'est relatif au chemin /edit_team, donc ce sera edit_team/css/bootstrap.min.css, ce qui n'est probablement pas ce que vous voulez.

Vous devriez pouvoir le confirmer en utilisant les outils de développement de votre navigateur. Regardez dans l'onglet Réseau et vérifiez les chemins pour les fichiers qui ne sont pas en cours de chargement.

Essayez d'utiliser des chemins qui ne sont pas par rapport au trajet en cours, tels que:

<link href="/css/bootstrap.min.css" rel="stylesheet"> 

Notez le / supplémentaire.

+0

Vous êtes un génie! J'essayais de résoudre ce problème depuis hier. le chemin relatif et absolu est important et maintenant je comprends sa valeur. Merci beaucoup. – jackysatpal