当 nodejs express 作为 docker 守护进程运行时,它不会使用 ect 模板引擎呈现 html 页面
nodejs express doesn't render html page with ect templating engine when it runs as a docker daemon
我正在尝试 运行 一个在 Docker 上的 ECT 模板引擎上呈现 HTML 页面的节点 js 应用程序,情况是一旦我直接与运行ning 容器如下命令和其中的 运行 节点。
docker run -p 80:5000 -it abdullahshahin/admin-panel bash
但是当我运行它作为守护进程时,express 显示如下错误
Error: Failed to lookup view "index" in views directory "/views"
下面是ect的声明
var ectRenderer = ECT({ watch: true, root:'/var/njs/html/views', ext : '.ect' });
另外,我试过这个
root: __dirname + '/views' and this root:'./views'
,没有任何帮助。
下面是主要的应用程序文件代码,我在这个上使用 MVC
// DECLARE VARIABLES
var express = require('express');
var instance = express();
var parser = require('body-parser');
instance.use(parser({strict:false}));
var commander = require('commander');
var ECT = require('ect');
var ectRenderer = ECT({ watch: true, root: __dirname + '/views', ext : '.ect' });
// PROMPTE USERS TO ENTER PORT
commander.option('-p, --port <n>', 'Port to run server on',parseInt).parse(process.argv);
if(!commander.port)
{
console.log("Please provide a port number");
process.exit(1);
}
// EXPRESS USES
instance.set('view engine', 'ect');
instance.engine('ect', ectRenderer.render);
// EXPRESS TO USE ROUTES
require("./routes/routes.js")(instance);
//instance.use(parser);
// EXPRESS TO USE PROMPTED PORT
instance.listen(commander.port);
下面是Docker文件内容
FROM ubuntu
RUN apt-get update
RUN apt-get --yes install software-properties-common
RUN apt-add-repository -y ppa:chris-lea/node.js
RUN apt-get update
RUN apt-get --yes install nodejs
COPY . /var/njs/html
RUN cd /var/njs/html; npm install
EXPOSE 1234
CMD node /var/njs/html/app.js -p 1234
有没有人对此有任何想法?
我刚找到它,我在 运行 容器时提到了带有守护程序选项的工作目录,如下所示
docker run -p 80:1234 -w="/var/njs/html" -d abdullahshahin/admin-panel
https://docs.docker.com/reference/run/#env-environment-variables
我正在尝试 运行 一个在 Docker 上的 ECT 模板引擎上呈现 HTML 页面的节点 js 应用程序,情况是一旦我直接与运行ning 容器如下命令和其中的 运行 节点。
docker run -p 80:5000 -it abdullahshahin/admin-panel bash
但是当我运行它作为守护进程时,express 显示如下错误
Error: Failed to lookup view "index" in views directory "/views"
下面是ect的声明
var ectRenderer = ECT({ watch: true, root:'/var/njs/html/views', ext : '.ect' });
另外,我试过这个
root: __dirname + '/views' and this root:'./views'
,没有任何帮助。
下面是主要的应用程序文件代码,我在这个上使用 MVC
// DECLARE VARIABLES
var express = require('express');
var instance = express();
var parser = require('body-parser');
instance.use(parser({strict:false}));
var commander = require('commander');
var ECT = require('ect');
var ectRenderer = ECT({ watch: true, root: __dirname + '/views', ext : '.ect' });
// PROMPTE USERS TO ENTER PORT
commander.option('-p, --port <n>', 'Port to run server on',parseInt).parse(process.argv);
if(!commander.port)
{
console.log("Please provide a port number");
process.exit(1);
}
// EXPRESS USES
instance.set('view engine', 'ect');
instance.engine('ect', ectRenderer.render);
// EXPRESS TO USE ROUTES
require("./routes/routes.js")(instance);
//instance.use(parser);
// EXPRESS TO USE PROMPTED PORT
instance.listen(commander.port);
下面是Docker文件内容
FROM ubuntu
RUN apt-get update
RUN apt-get --yes install software-properties-common
RUN apt-add-repository -y ppa:chris-lea/node.js
RUN apt-get update
RUN apt-get --yes install nodejs
COPY . /var/njs/html
RUN cd /var/njs/html; npm install
EXPOSE 1234
CMD node /var/njs/html/app.js -p 1234
有没有人对此有任何想法?
我刚找到它,我在 运行 容器时提到了带有守护程序选项的工作目录,如下所示
docker run -p 80:1234 -w="/var/njs/html" -d abdullahshahin/admin-panel
https://docs.docker.com/reference/run/#env-environment-variables