Sto provando a migrare un progetto da 0.9.9 a 0.10.5
Stavamo usando il motore di templating della polvere nel nostro porpo invece del motore ejs predefinito.
Contenuto del file config / views.js
module.exports.views = {
engine: "dust",
layout: "layout"
};
Nel mio controller, sono riuscito a rendere questa visualizzazione come questa
res.view("layout", obj);
Tuttavia, in vele 0.10.5, quando sollevo le vele, prima di tutto ottengo questo avvertimento
warn: Sails" built-in layout support only works with the `ejs` view engine.
warn: You"re using `dust`.
warn: Ignoring `sails.config.views.layout`...
E poi quando provo a rendere la vista come stavo facendo in precedenza, ottengo il seguente errore:
error: Sending 500 ("Server Error") response:
Error: ENOENT, open "/.dust"
{ [Error: ENOENT, open "/.dust"] errno: 34, code: "ENOENT", path: "/.dust" }
Qualche idea su quale sia il modo corretto di farlo in 0.10.5?
risposte:
1 per risposta № 1Il layout
la proprietà non si applica alla polvere (solo ejs). Imposta il layout su false
per ottenere l'avviso di andare via. Si desidera utilizzare il supporto integrato di Dust per partial e blocks in ogni caso.
utilizzando res.view("layout", obj);
significa che ti aspetti un file chiamato views/layout.dust
esistere. Prima delle 0.10, le vele includevano il layout
proprietà da config / views.js come parte del percorso.
Quindi la mia ipotesi migliore è quella tua res.view()
la chiamata viene effettivamente invocata con una stringa vuota come primo parametro e non si è interrotta perché stavi tentando di eseguire il rendering di qualcosa chiamato layout
. Controllerò la tua chiamata per assicurarti di chiamare res.view()
con una variabile istanziata.