我有我认为是一个ejs问题,克隆了一个github回购并且在我遇到问题之前没有真正使用过ejs。奇怪的是,我可以让repo在本地主机上工作,但在IDE中我得到以下内容:
ReferenceError: /home/cabox/workspace/example/base.html:10
8| <body>
9| <div id="page"></div>
>> 10| <script src="<%= htmlWebpackPlugin.options.libBaseUrl
%>/llsRecorder-v1.0.0.js"></script>
11| </body>
12| </html>
13|
htmlWebpackPlugin is not defined
at eval (eval at <anonymous> (/home/cabox/workspace/node_modules/ejs/lib/ejs.js:524:12), <anonymous>:11:26)
at returnedFn (/home/cabox/workspace/node_modules/ejs/lib/ejs.js:555:17)
at tryHandleCache (/home/cabox/workspace/node_modules/ejs/lib/ejs.js:203:34)
at View.exports.renderFile [as engine] (/home/cabox/workspace/node_modules/ejs/lib/ejs.js:412:10)
at View.render (/home/cabox/workspace/node_modules/express/lib/view.js:128:8)
at tryRender (/home/cabox/workspace/node_modules/express/lib/application.js:640:10)
at EventEmitter.render (/home/cabox/workspace/node_modules/express/lib/application.js:592:3)
at ServerResponse.render (/home/cabox/workspace/node_modules/express/lib/response.js:971:7)
at /home/cabox/workspace/server.js:14:9
at Layer.handle [as handle_request] (/home/cabox/workspace/node_modules/express/lib/router/layer.js:95:5)
我已经使用npm安装了最新版本的ejs并设置了我的视图(适用于本地主机):
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/example');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.get('/', function(req, res, next) {
res.render("base");
});
知道IDE版本的本地主机之间可能出现什么问题?显而易见的事情,如公共&#39;或许更改为IDE文件夹名称,或者同样小的东西。
谢谢!
汤姆
答案 0 :(得分:1)
您必须以对象的形式将变量传递给渲染。您传递的变量也必须通过require
或在那里定义来存在于同一文件中。(我不知道您是如何设置的)
app.get('/', function(req, res, next) {
res.render("base", {htmlWebpackPlugin: htmlWebpackPlugin});
});