Eri*_*c H 10 ssl heroku node.js grunt-build-control
我正在尝试使用grunt buildcontrol首次部署我继承到heroku的项目.虽然我能够构建和部署,但在运行时我收到错误:
ENOENT:没有这样的文件或目录,打开'ssl/keys/server.key'
检查dist目录,确实没有ssl目录.因此,我将它添加到/ dist无济于事.认为/ dist/server /中的app.js可能限定在该目录范围内,我在那里复制了ssl目录 - 同样的问题.在/dist/server/app.js里面:
var options = {
key: fs.readFileSync('ssl/keys/server.key'),
cert: fs.readFileSync('ssl/keys/server.crt')
};
// Setup server
var app = express();
var server = require('https').createServer(options, app);
Run Code Online (Sandbox Code Playgroud)
如果不在服务器文件夹中,它将在哪里寻找ssl目录?
hee*_*nee 11
该readFileSync
函数评估节点可执行文件的当前工作目录的相对路径,在Heroku上/app
,而不是dist文件夹.要将dist文件夹作为相对路径访问,您应该使用path.resolve
:
var path = require('path');
var options = {
key: fs.readFileSync(path.resolve('dist/ssl/keys/server.key')),
cert: fs.readFileSync(path.resolve('dist/ssl/keys/server.crt'))
};
Run Code Online (Sandbox Code Playgroud)
替代方案包括:
fs.readFileSync(__dirName + '/dist/ssl/keys/server.key')
fs.readFileSync(process.cwd() + '/dist/ssl/keys/server.key')
fs.readFileSync(path.join(__dirName, 'dist', 'ssl', 'keys', 'server.key'))
但我觉得这path.resolve
是简洁和强大的正确融合.
归档时间: |
|
查看次数: |
7697 次 |
最近记录: |