2017-09-08 8 views
0

は、私は現在angular2で働いていますし、展開の目的のために、私はルートangular2は

成功シナリオで立ち往生しています.I私のサーバーとしてノードを使用する必要があります。私は使用してページに移動する場合

--- http://localhost:8080/sign-in細かい

障害シナリオを作品:routerLinkそれは細かいノードがそれらを提供作品も

ルートがある を私はアドレスsamと入力した場合電子上記のように、それはindex.htmlにし、他のルートが

index.js

const express = require('express'); 
const app = express(); 
var path = require("path"); 



app.use(express.static(__dirname + '/dist')); 


app.get('/[^\.]+$', function(req, res) { 
    console.log(__dirname+'/src/index.html') 
    res.sendFile(path.join(__dirname+'/src/index.html')) 
}); 
app.listen(process.env.PORT || 8080); 
を動作しないアプリロードを言って立ち往生すなわち、手動でアドレスバーに、ページ

をロードできませんでした

問題がページを果たすことができなかったノードサーバであるが、私は任意のヘルプは非常アプリは角度本番モードです 理解されるであろうルートが偶数アドレスバーから仕事をしたいです4

答えて

1

NGビルドでプロジェクトをビルドするために偽造しないでください。その後、新しいディレクトリが表示されます:dist このディレクトリには、あなたの角張ったプロジェクトが含まれています。あなたのノードプロジェクトで

あなたはそれをあなたの角度のプロジェクト内のすべてのルートを送信する必要があります。

// Send all other requests to the Angular app 
app.get('*', (req, res) => { 
    res.sendFile(path.join(__dirname, 'yourprojectangular/dist/index.html')); 
}); 
0

LocationStrategyとしてHashLocationStrategyを使用してみてください:あなたの角度のプロジェクトで

import { HashLocationStrategy, LocationStrategy } from '@angular/common'; 

@NgModule({ 
    // ... 
    providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}], 
    // ... 
}) 
export class AppModule {} 
+0

は/」それはまだindex.htmlを –

+0

上stucksを変更しようと取り組んでいません[^ \。] + $ 'into'/* ' – Faly

+0

これは動作していますが、URLは現在hashbangである つまりlocalhost:8080 /#!/ signin –