首页 > 解决方案 > 如何让 HAML 布局与 haml-coffee 和 Express 4 一起使用?

问题描述

我遵循“使用 CoffeeScript 和 HAML 生成 NodeJS Express 应用程序”和express-usage 文档,但我的布局没有显示。

我可以看到渲染index.hamlc好的,但它不包含布局。如何让布局与 HAML 和 Express 4 一起使用?

server.js:

const express = require('express'),
    partials = require("express-partials"),
...
app.set('views','app/views');
app.engine("hamlc", require("haml-coffee").__express)
app.use(partials())
app.set("view engine", "hamlc")

index.js:

router.get('/', (req, res) => {
    res.render('index', {name: "User"})

应用程序/视图/layout.hamlc:

!!!
%head
  %title Express App
%body
  xxx
  != @body

我使用 Chrome 查看了源代码,view-source:http://127.0.0.1/它只显示模板内容而不显示布局。

标签: node.jsrubyexpresshaml

解决方案


我移动了线路

app.use('/', indexRouter)

以下

app.engine("haml", require("haml-coffee").__express)
app.use(partials())
app.set("view engine", "haml")

它奏效了。我不认为顺序会很重要。(我还重命名了文件.haml以匹配约定并启用语法高亮显示。)


推荐阅读