mia*_*ech 1 include ejs node.js express
伙计们,我正在云 9 中开发节点/express 应用程序。https://webdevcamp-miatech.c9users.io/但是,我的 home.ejs 文件中的包含文件不起作用。我有一个 header.ejs 和 footer.ejs,我将它们包含在我的 home.ejs 文件中。但是当我去调用默认路由“/”home 时。它给了我。这是 c9.io 上的应用程序https://ide.c9.io/miatech/webdevcamp 此错误消息。
Error: Could not find include include file.
at getIncludePath (/home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:152:13)
at includeSource (/home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:276:17)
at /home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:629:26
at Array.forEach (native)
at Object.generateSource (/home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:605:15)
at Object.compile (/home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:509:12)
at Object.compile (/home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:358:16)
at handleCache (/home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:201:18)
at tryHandleCache (/home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:223:14)
at View.exports.renderFile [as engine] (/home/ubuntu/workspace/EJSDemo/node_modules/ejs/lib/ejs.js:437:10)
Run Code Online (Sandbox Code Playgroud)
如果我从 home.ejs 中删除页脚和页眉的包含,它会得到修复。所以它必须是我包含它的方式或路径。如果有人可以帮忙。感谢 home.ejs
<% include ./partials/header %>
<h1>Hello World</h1>
<img src="http://lorempixel.com/400/200/">
<% include ./partials/footer %>
Run Code Online (Sandbox Code Playgroud)
头文件.ejs
<!DOCTYPE html>
<html>
<head>
<title>EJSDemo</title>
<link rel="stylesheet" type="text/css" href="/app.css">
</head>
<body>
Run Code Online (Sandbox Code Playgroud)
页脚.ejs
<p>trademark 2018</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
最后我的 app.js
var express = require("express");
var app = express();
//tell express to serve the content of public dir
app.use(express.static("public"));
app.set("view engine", "ejs");
//default app route
app.get("/", function(req, res) {
res.render("home.ejs");
});
// /fallinlove route
app.get("/fallinlove/:thing", function(req, res) {
var thing = req.params.thing;
//rendering love.ejs and passing variable to template
res.render("love.ejs", {thingVar:thing});
});
// /post route
app.get("/posts", function(req, res) {
var posts = [
{title: "Post 1 ", author: "Charlie"},
{title: "My adorable pet bunny", author: "Susy"},
{title: "Can you believe this pomsky?", author: "Colt"}
]
res.render("posts.ejs", {posts: posts});
});
//start server
app.listen(process.env.PORT, process.env.IP, function() {
console.log("server started!..");
});
Run Code Online (Sandbox Code Playgroud)
小智 11
我遇到了同样的问题,这个新的(er)EJS 语法工作得很好。
// <%- include("partials/header") %>
// <%- include("partials/footer") %>
Run Code Online (Sandbox Code Playgroud)
小智 5
对于任何面临这个问题的人来说,新的语法是
<%- include('partials/header') %>
Run Code Online (Sandbox Code Playgroud)
提示:您应该包括:
app.set("view engine", "ejs");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10978 次 |
最近记录: |