Je travaille sur une application Node utilisant Express ainsi que Angular. J’utilise Angular pour l’acheminement et mes itinéraires sont configurés comme suit:
app.config(['$routeProvider', function ($routeProvider) { $routeProvider.when('/', { templateUrl: '/partials/main' //controller: 'IndexController' }).when('/discover', { templateUrl: '/partials/discover' }).when('/user/home', { //HERES THE PROBLEM CHILD!!!!! templateUrl: '/partials/user/home' }).otherwise({ redirectTo: '/' }); }]).config(['$locationProvider', function ($locationProvider) { $locationProvider.html5Mode(true); }]);
Maintenant, chaque fois que j’essaie d’appeler /user/home
– La page passe dans une boucle infinie et continue à recharger le contrôleur. Je peux voir dans la console de nœud que la page a été appelée à partir de partials/user/home
qui contient certainement un fichier Jade. J’ai vérifié d’autres messages, la plupart d’entre eux sont résolus avec le /
au début du chemin des partiels, cela n’a pas aidé ici. La page se charge bien si je transfère home.jade
dans le répertoire /partials
sans sous-répertoire. Des idées?
Mise à jour: Il semble que la boucle infinie se produise à chaque fois que j’essaie de charger un partiel dans un sous-répertoire de partiels.
Par reqûette:
Node – App.js:
app.get('/', routes.index); app.get('/partials/:name', routes.partials); app.get('*', routes.index);
Et routes / index.js
exports.index = function(req, res) { res.render('index', { title: 'Open Innovation Station' }); } exports.partials = function(req, res) { res.render('partials/' + req.params.name); }
La règle de routage que vous avez spécifiée pour les partiels ne correspondra à aucune demande adressée à des sous-répertoires du dossier des partiels, par exemple / partials / folder / file. L’adaptateur de chemin de routage considère /
comme un séparateur entre les variables. Par conséquent, afin de pouvoir disposer de sous-dossiers dans votre répertoire de partiels, vous devrez append une autre règle à votre application et définir une fonction pour gérer le rendu de ce modèle. Ceci est montré ci-dessous:
app.js
app.get('/partials/:directory/:file', routes.subpartials);
routes / index.js
exports.subpartials = function (req, res) { var file = req.params.file, directory = req.params.directory; res.render('partials/' + directory + '/' + file); };
En utilisant html5Mode(true)
, vous devrez vous préoccuper de tout chemin relatif – que vous utilisez pour vos partiels. Je pense que la récursion dans votre cas aurait pu être résolue en ajoutant:
à votre .