Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Heroku节点应用程序预编到静态文件的路由_Node.js_Express - Fatal编程技术网

Node.js Heroku节点应用程序预编到静态文件的路由

Node.js Heroku节点应用程序预编到静态文件的路由,node.js,express,Node.js,Express,我一直在使用heroku托管一个节点应用程序。我在公共目录中声明我的js/css/images process.env.PWD = process.cwd(); app.set('views',process.env.PWD + '/views'); app.use(express.static(process.env.PWD + '/public')); 我尝试了_dirname而不是process.cwd(),两者的工作原理相同。无论如何,在这个应用程序中,我渲染了两条路线: app.ge

我一直在使用heroku托管一个节点应用程序。我在公共目录中声明我的js/css/images

process.env.PWD = process.cwd();
app.set('views',process.env.PWD + '/views');
app.use(express.static(process.env.PWD + '/public'));
我尝试了_dirname而不是process.cwd(),两者的工作原理相同。无论如何,在这个应用程序中,我渲染了两条路线:

app.get('/challenge', function(req, res){
  res.render('challenge');
});

app.get('/dashboard', function(req, res){
  res.render('dashboard');
});
所以在我的视图目录中,我有challenge.ejs和dashboard.ejs。这两个文件都包含css和js,例如

<script type="text/javascript" src="js/libs/bootstrap.min.js"></script>
再次编辑: 我可以通过添加“预加文本”来呈现公共目录来解决这个问题,但我觉得我好像在作弊

app.use("/challenge", express.static(process.env.PWD + '/public'))
app.use(express.static(process.env.PWD + '/public'));

这基本上就是通过localhost与Heroku解析文件路径的方式。对于相对于根的路径,修复应该很容易


不幸的是,在我发布问题之前,我已经尝试添加了./;它仍然会产生相同的结果。我从来没有经历过这种行为,听起来像是发生了别的事情。
app.use("/challenge", express.static(process.env.PWD + '/public'))
app.use(express.static(process.env.PWD + '/public'));