我能找到的所有教程都使用某种app.js在heroku上运行他们的节点服务器。
我已经配置了我的grunt-connect任务,为我的单页应用程序使用modRewrite,以便所有请求只返回index.html。因此,在安装npm之后,以某种方式让heroku运行grunt dist
会很方便。
我已尝试将此行添加到我的package.json
"scripts": {
"postinstall": "echo postinstall time; ./node_modules/grunt/lib/grunt.js dist"
}
但我认为我的道路有问题,因为它没有用。我收到了Permission denied错误。
我也尝试过使用一个简单的app.js快速服务器(即使我不得不重新弄清楚如何进行modRewrite) - 但是在某个地方失败了 - heroku正在寻找一个index.js,我没有。
谢谢!
答案 0 :(得分:0)
我最终得到的解决方案是使用我的grunt任务中相同的modRewrite代码的简单连接服务器:
var connect = require('connect');
var modRewrite = require('connect-modrewrite');
var app = connect()
.use(modRewrite(
['^[^\\.]*$ /index.html [L]']
))
.use(connect.static('./dist/'))
.listen(process.env.PORT || 3000)
以下Procfile:
web: node app.js