Express 不起作用的 Jade 布局中的块和扩展

发布于 2024-12-17 16:09:36 字数 1008 浏览 0 评论 0 原文

我有一个为节点编写的小型 Express 站点。我正在使用 Jade 进行布局,并尝试处理新的扩展/块位。当我在这里使用标准布局/子视图模式列表时,一切都很好:

https://github.com/visionmedia/express/blob/master/examples/jade/views/layout.jade

我想要花哨并使用块将自定义 html 填充到特定部分主布局。所以我过渡到看起来更像这样的东西:

https:// /github.com/visionmedia/jade/blob/master/examples/extend-layout.jade

https://github.com/visionmedia/jade/blob/master/examples/extend.jade

使用上面扩展布局示例中的确切代码,我的页面将始终呈现扩展-layout.jade 部分,但绝不是里面的内容。块内的任何内容似乎永远不会被渲染。我已经尝试过,但没有帮助:

https://github.com/ visionmedia/jade/issues/377

我正在运行节点 0.6.2、express 0.2.5 和 jade 0.18。有接受者吗?

I have a small express site written for node. I'm using Jade for layouts, and trying to get a handle on the new extends/block bits. When I use the standard layout/child view pattern list here, everything works great:

https://github.com/visionmedia/express/blob/master/examples/jade/views/layout.jade

I want to get fancy and use blocks to stuff custom html into specific parts of the master layout. So I transitioned over to something that looks more like this:

https://github.com/visionmedia/jade/blob/master/examples/extend-layout.jade

https://github.com/visionmedia/jade/blob/master/examples/extend.jade

Using the exact code in the extend-layout example above, my pages will always render the extend-layout.jade part, but never the content inside. Anything inside of a block never seems to get rendered. I've given this a try, but it doesn't help:

https://github.com/visionmedia/jade/issues/377

I'm running node 0.6.2, express 0.2.5, and jade 0.18. Any takers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画中仙 2024-12-24 16:09:37

无论如何,在 Express v3 中,布局配置条目现在已被弃用。

您只能使用块/扩展样式。

The layout config entry is deprecated now anyway with v3 of Express.

You can only use the block/extends style.

尤怨 2024-12-24 16:09:37

所以我已经弄清楚发生了什么。我手动指定要在 Express 中使用的布局 - 我将其设置为正确的布局,但删除该行解决了问题。示例(对于遇到此问题的其他人):

exports.index = function(req, res){
  res.render('index', { title: 'Express' })  // this works!
  res.render('index', { title: 'Express', layout: 'layout' }) // this doesn't work
};

我本来期望不同的行为 - 包括这样的显式布局只会导致子视图不在主布局中呈现。

So I've figured out what was up. I was manually specifying the layout to use in express - I was setting it to the correct layout, but removing that line solved the problem. Example (for others who run into this):

exports.index = function(req, res){
  res.render('index', { title: 'Express' })  // this works!
  res.render('index', { title: 'Express', layout: 'layout' }) // this doesn't work
};

I would have expected a different behavior - including an explicit layout like this simply caused the child view to not render within the master layout.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文