我正在使用带有nodejs&的视图引擎vash。 express 3和我的index.vash和layout看起来如下:
// index.vash
@html.extend('layout', function(model){
@html.block('body', function(model){
<span class="name">Welcome</span>
})
})
// layout.vash
<p>
@html.block('body')
</p>
app.js:
app.get('/', function (req, res) {
res.render('index');
});
在app.js中我设置了视图引擎:app.set('view engine', 'vash');
所以这些例子与github上描述的1:1相同。
This问题是一样的,除了解决方案对我不起作用。他建议你应该给layout.vash提供正确的路径,但我在同一目录'views'中得到了两个vash文件(索引和布局)。我也尝试了@html.extend('views/layout'..
,但这也没有用。
每次运行项目时,它都会为index.vash显示以下错误:
快速
500 TypeError:在第5行渲染模板时出现问题,字符1 原始消息:对象不是函数 语境:
3 | @html.block('body',function(model){
4 |欢迎
- &GT; 5 | })
6 | })
在C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2213:4 at Object.vash.loadFile(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2072:10) 在helpers.extend(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2190:8) 在eval(eval at(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:1820:24),:17:21) 在链接(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:1860:12) 在C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2082:21 at Object.vash.loadFile(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2070:10) 在View.vash.renderFile [作为引擎](C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ vash \ build \ vash.js:2078:8) 在View.render(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ express \ lib \ view.js:76:8) 在Function.app.render(C:\ Users \ Luca \ Documents \ VSProjects \ Website \ TestApp \ TestApp \ node_modules \ express \ lib \ application.js:504:10)
答案 0 :(得分:0)
我终于解决了问题,在调用extend时,index.vash中的路径不正确,我只需要添加一个尾部斜杠(“/ layout”)。
答案 1 :(得分:0)
就我而言,我正在将项目从MVC迁移到Node / Vash Vash布局文件有一些注释的MVC代码,这导致了渲染问题。