2015-09-08 4 views
0

Je rencontre des problèmes lors de la définition de chemins de vue partielle dans nodeJs + expressJs. Voici ma structure de répertoire.comment définir et utiliser les chemins de vue des partiels dans node.js + expressJS

Répertoire Structure

packages 
--Module1 
----Views 
------sample.ejs 
--sharedModule 
----Views 
------partials 
--------Module1.ejs 
--------partialHTML.ejs  //able to use in index.ejs 
------index.ejs //Used : <% include partials/partialHTML%> 

express.js:

var express = require('express'); 
var app = express(); 
app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, 'packages/sharedModule/views')); 

Je suis en mesure d'utiliser 'partialHTML.ejs' dans le fichier index.ejs à l'aide <% include partials/partialHTML%>..

Comment puis-je utiliser les fichiers Module1.ejs sous le fichier Module1/view/sample.ejs?

+0

Où se trouve le nom __dirname dans la structure? – Kof

+0

@Kof Il indique mon chemin absolu. par exemple. D:/myProject/NodeProject. et ce NodeProject contient ce répertoire. –

Répondre

0

Vous avez défini packages/sharedModule/views comme votre répertoire de vues, sample.ejs n'est pas où sous ce répertoire, il est sous un autre chemin. C'est pourquoi ce n'est pas trouvé.

Sous Linux, vous pouvez créer un lien souple pour pointer les vues partagées Module1/views/sharedviews ==>../../sharedModule/views, puis définissez votre Module1 comme le chemin racine pour les vues -

app.set('views', path.join(__dirname, 'packages/Module1/views')); 

Ainsi, lorsque vous cherchez une vue, il est garanti d'être trouvé, puisque maintenant votre views dir a à la fois Module1 et sharedModule vues.