JGa*_*rdo 1 git heroku node.js
我已经"谷歌搜索"了,并在这里找到了许多类似的答案.这是我的确切错误.
$ git push heroku master
Counting objects: 43, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (35/35), done.
Writing objects: 100% (43/43), 5.19 KiB, done.
Total 43 (delta 10), reused 0 (delta 0)
! Push rejected, no Cedar-supported app detected
To git@heroku.com:vidperdiem.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:vidperdiem.git'
Run Code Online (Sandbox Code Playgroud)
是的我确实按照Heroku指南(说NPM安装)并验证我在Heroku上的回购是一个遥控器

这些是我的档案
的package.json
{
"name": "vidperdiem",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "3.4.4",
"jade": "*",
"stylus": "*"
},
"engines": {
"node": "0.8.x",
"npm": "1.2.x"
}
}
Run Code Online (Sandbox Code Playgroud)
Procfile
web: node app.js
Run Code Online (Sandbox Code Playgroud)
app.js
/**
* Module dependencies.
*/
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', function(req, res){
res.render('index', {
title: 'Home'
});
});
app.get('/about', function(req, res){
res.render('about', {
title: 'About'
});
});
app.get('/contact', function(req, res){
res.render('contact', {
title: 'Contact'
});
});
app.get('/privacy', function(req, res){
res.render('privacy', {
title: 'Privacy'
});
});
app.get('/terms', function(req, res){
res.render('terms', {
title: 'Terms'
});
});
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
Run Code Online (Sandbox Code Playgroud)
如果你像许多人一样遇到这个挑战,请确保你已经掌握了基础知识.在我的情况下,当推向Heroku时我需要在根中.很明显这听起来让我解释一下这是怎么发生的,这样你就可以避免这种挫败感.
我最初在Github上创建了repo,然后在本地克隆了它.然后在终端我进入了项目,README.md并且.gitignore我在github上初始化了它.
那时我创建了nodejs app并将其命名为"app".
然后我在Heroku上创建了一个应用程序(通过网站,因为它更容易命名而不是获得一个很长的应用程序名称),当你这样做时heroku create.
我回到终端并添加了heroku作为遥控器heroku git:remote -a appname(其中"appname"是你的回购的名称).
这里的问题是,如果你也在Heroku上跟踪应用程序,这将导致它成为github 上的子模块.
这就是为什么我将heroku作为遥控器从github轨道改变的同一个地方添加的原因.
底线:我将文件复制出"app"文件夹并将其放回根目录中.

确保以下文件位于根目录中
app.js
package.json
Procfile
当我试图为自己找出类似的问题时,我偶然发现了这个答案.
在我的实例中,我正在从非Heroku部署转移到Heroku部署.所以Herkou实例运行在我设置的新(本地)git分支上,因此不是主人.
一旦我解决了问题,答案是显而易见的.而不是打电话git push heroku master,我不得不跑 git push heroku mylocalbranch:master,因为我试图推动旧的,非heroku部署,这显然是行不通的:)