我可能遗漏了一些明显的东西,但我是这个工作流程的新手。我有一个 Express 应用程序设置,我正在使用 Jade 作为模板引擎。我正在尝试使用一种名为“gulp-bundle-assets”的工具,它将我的所有脚本捆绑成一个,并在名称中使用散列输出它们(我假设是为了避免缓存问题)。它还包括一个 JSON 文件,该文件应该用于将脚本集成到您的应用程序中。它看起来像这样:
{
"main": {
"styles": "<link href='main-8e6d79da08.css' media='screen' rel='stylesheet' type='text/css'/>",
"scripts": "<script src='main-5f17cd21a6.js' type='text/javascript'></script>"
},
"vendor": {
"scripts": "<script src='vendor-d66b96f539.js' type='text/javascript'></script>",
"styles": "<link href='vendor-23d5c9c6d1.css' media='screen' rel='stylesheet' type='text/css'/>"
}
}
如何将这些数据包含在我的 Jade 模板中?我看到一个用于编译执行变量插值的 Jade 模板的实用程序,这是处理它的最佳方式,还是 Jade 中有一些 native 的东西?
最佳答案
当您在 NodeJS Express 服务器中使用 JADE 时,您可能需要将数据发送到您的 View 。我认为这是你需要的。由于您的数据是 JSON 格式,您需要使用 JSON 方法将 JADE 模板 View 转换为清晰的格式。
尝试下一个示例代码:
var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');
let port = process.env.PORT || 3030;
var app = express();
app.set('views', path.join(__dirname, 'templates'));
app.set('view engine', 'jade');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res){
let jsonFile = require('./public/jsondata.json');
let jsonData = JSON.stringify(jsonFile);
let json = JSON.parse(jsonData);
let mStyles = json.main.styles; //You get your main styles
res.render('index', { mainStyles: mStyles });
}).listen(port, function(){
console.log('Listening on' + port);
});
并且您的 JADE 模板位于 templates
文件夹中,包含以下内容:
html(lang="en")
head
meta(charset="utf-8")
#{mainStyles}
title Hello World
您正在将 mainStyles
var 传递给 JADE 模板文件。
Don't forget customize your JSON file location.
关于json - 如何将 JSON 包集成到 Jade 模板中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37374507/