node.js - Express - 嵌套目录中每个模板文件的路由和渲染引擎
问题描述
使用 Express Middleware serve-index,可以浏览完整目录,结合server-static可以在导航到文件时呈现图像和文本(以及下载其他不可呈现的二进制文件)。
const express = require("express");
const path = require("path")
const serveIndex = require("./index");
const server = express();
server.use("/posts",
express.static("./posts/"),
serveIndex("./posts")
);
server.listen(8080);
我希望当导航到文件系统中任何位置的文件与给定的模板文件扩展名(例如.. Consolidate.js.pug
)匹配时,应该使用适当的渲染引擎。.liquid
通常会views/
根据需要创建一个专用目录和单独的路由,但我希望将模板文件分散在文件系统中以记录不同的项目。导航到使用 serve-index 的 url 中的路径例如localhost/public/views/project-one
将用于index.liquid
在该项目的目录中呈现模板。
const express = require("express");
const path = require("path")
const server = express();
var { Liquid } = require('liquidjs');
var engine = new Liquid();
// register liquid template engine
server.engine('liquid', engine.express());
server.set("views", path.join(__dirname, "views"));
// route and file to return is hardcoded
server.get('/', function (req, res) {
res.render('index') // render `index.liquid`
})
server.listen(8080);
解决方案
推荐阅读
- amazon-web-services - 限制 API 访问单个源 IP
- ruby - 当我在 IRB 中声明时,为什么我的顶级方法在所有类上都是公共的(而不是私有的)?
- python - 如何从矩阵中选择特定的非对角带?
- c# - 刷为 DependencyProperty = 自动冻结?
- python - 在 Windows 上下载 Python 2.7.15 后未安装 Pip
- sqlite - MediaWiki 在尝试从安装到 docker conainer 的 sqlite db 中读取时引发 DBTransactionStateError
- hadoop - Hadoop 2.7.2 中的 TestDFSIO
- jquery - jQuery - animate().css() 完成
- python - 如何制作具有并行运行命令行工具的功能的python模块(不使用 if __name__ == '__main__': 所以它是可导入的)?
- python - sum函数如何在python中使用for循环