2017-01-04 9 views
3

私はHerokuにionic2アプリケーションをデプロイしようとしています。私はこれらのサイトを見て:HerokuにIonic2を展開する

server.jsファイルを作成:

var express = require('express'); 
var app  = express();        // create our app w/ express 
var morgan = require('morgan');    // log requests to the console (express4) 
var bodyParser = require('body-parser'); // pull information from HTML POST (express4) 
var cors = require('cors'); 

app.use(morgan('dev'));           // log every request to the console 
app.use(bodyParser.urlencoded({'extended':'true'}));   // parse application/x-www-form-urlencoded 
app.use(bodyParser.json());          // parse application/json 
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json 
// app.use(methodOverride()); 
app.use(cors()); 

app.use(function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header('Access-Control-Allow-Methods', 'DELETE, PUT'); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    next(); 
}); 

app.use(express.static('www')); 
app.set('port', process.env.PORT || 5000); 
app.listen(app.get('port'), function() { 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

私はこれで何のモデルや無DBを持っていないので、時間、私はモンゴーとマングースを除外しました。

Cannot GET/

のページ:私はnpm startを経由して私のローカルマシン上で実行するが、私はHerokuの上でそれを実行したときに、私が取得するとき

サーバが正常に動作します。 Herokuのログは示しています

2017-01-04T19:56:59.385666+00:00 heroku[web.1]: State changed from starting to up 
2017-01-04T19:57:00.546815+00:00 heroku[router]: at=info method=GET path="/" host=hrmghp-companion.herokuapp.com request_id=4c010120-3dce-4f99-b31c-99dc0883f314 fwd="108.44.230.178" dyno=web.1 connect=1ms service=49ms status=404 bytes=364 
2017-01-04T19:57:00.549928+00:00 app[web.1]: GET/404 19.924 ms - 13 

は、私は私のserver.jsファイルに何かが足りないのですか?

編集: 問題が見つかりました。私は.gitignoreファイルにwww/を持っていました。私はherokuに展開するときにアプリを再構築すると思った?これはどういう仕組みですか?

+0

www/tipに感謝します。コードがGithubブランチにプッシュされた後、私はHerokuの自動デプロイメントを使用しているので、これがこれだと思います。 –

答えて

3

wwwをリポジトリに追加しないでください。すべてのファイルを追跡したくない場合。代わりに、package.jsonのscriptsセクションに"postinstall": "ionic-app-scripts build"を含めてください。これは、アプリを再構築し、Herokuのwwwフォルダを再生成します。

+0

これがより良い方法です。私のやり方は「迅速かつ汚れた」方法ですが、最終的には間違っています。レポにwwwを追加しないでください。 – Jeff

2

アレックスの答えに何かを追加したいだけです。 package.jsonのscriptsセクションに"postinstall": "ionic-app-scripts build"を追加し、生産モードは私のために働い無効、あなたがそうheroku config:set NPM_CONFIG_PRODUCTION=false

を通じてHerokuの中で(devDependencyは対照的に)依存関係としてionic-app-scriptsを追加したり、生産モードを無効にするのいずれかを確認してください。

関連する問題