Javascript Can';t使用res.sendFile将文件发送到OpenShift
我正在尝试使用Javascript Can';t使用res.sendFile将文件发送到OpenShift,javascript,node.js,openshift,Javascript,Node.js,Openshift,我正在尝试使用NodeJS服务器中的express发送文件。在本地主机上,它可以工作,但当我将应用程序推到OpenShift时,出现了一个错误:内部服务器错误 代码: 如果我试着发送简单的文本,就可以了。那么,问题出在哪里以及如何解决呢?问题很可能是因为您运行在不同的工作目录中path.resolve将使用当前工作目录,除非您提供了一个from参数。尝试替换: res.sendFile(path.resolve('bg95.png')); 与 我有一个类似的问题,我的项目文件夹中有一个示例in
NodeJS
服务器中的express
发送文件。在本地主机上,它可以工作,但当我将应用程序推到OpenShift时,出现了一个错误:内部服务器错误
代码:
如果我试着发送简单的文本,就可以了。那么,问题出在哪里以及如何解决呢?问题很可能是因为您运行在不同的工作目录中
path.resolve
将使用当前工作目录,除非您提供了一个from
参数。尝试替换:
res.sendFile(path.resolve('bg95.png'));
与
我有一个类似的问题,我的项目文件夹中有一个示例index.html文件。我尝试了
res.sendFile('./dashboard.html')
,res.sendFile('./app root/repo/dashboard.html')
,等等,但都没有成功。
确保您的express版本为v4.8.0或更高版本。然后我找到了下面提到的链接,并使用
res.sendFile(path.join(uu dirname+'/index.html')代码>
其中\uuu dirname,我相信它为我们提供了OpenShift的工作路径文件夹。这有助于我显示页面
查看此链接。一个关于如何使用它的简单演示,如果你遵循它,你将能够使它工作。;) 您应该在Dependences中更新express版本。就像这样:
"dependencies": {
"express": "4.10.2",
"socket.io": "1.3.7"
}
问题似乎出在不支持sendFile的express版本上 您确定bg95.png
与您的脚本位于同一目录下吗?如果您在路由处理程序之后添加一个快速错误处理程序(例如app.use(function(err,req,res,next){console.log(err.stack);next(err);}
),错误会显示什么?@mscdex没有错误…控制台中一切正常。
res.sendFile(path.join(__dirname, 'bg95.png'));
"dependencies": {
"express": "4.10.2",
"socket.io": "1.3.7"
}