Asp.netコア2.1 + Angular 6アプリケーション。私のStart.cs
ファイル。我々は持っています
app.UseSpa(spa =>
{
// To learn more about options for serving an Angular SPA from ASP.NET Core,
// see https://go.Microsoft.com/fwlink/?linkid=864501
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
朝は、Visual Studioからasp.netコアアプリケーションを実行します(F5をクリックします)。ビルドモジュールでwebpackビルドがスタックしました。それは長い間scssファイルを構築し、そこでハングします。そのため、Webページはasp.netコアミドルウェア例外をスローします。
しかし、午後には別のエラーが発生しました。 Fail: Microsoft.AspNetCore.SpaServices[0]
。
ただし、npm start
コマンドウィンドウで、次にdotnet run
Visual Studioコード。それは結構です。
何をするか教えてください?
自分で答えを見つけてください。まだ.NET-Coreのバグです。ページを更新(F5)すると問題が解決し、正常に機能します。 ( https://github.com/aspnet/JavaScriptServices/issues/1625 )
問題はまだ存在しますが、待っているだけでangularビルド、私の端から見ると、問題はビルド順序が原因であるようです。つまり、サーバー側のコードは、 angularコードなので、1、2秒待つとエラーが消えます。
別の方法として、サーバーを実行する場合、最初にwebpackがコンパイルを完了するまで待機してから、dotnet run
コマンドを実行します。
上記と同様のエラーが発生しましたが(失敗:Microsoft.AspNetCore.SpaServices [0])、dotnet CLI(バージョン3.0.100、Angular 8.0)の場合)。Angularプロジェクト-ビルド中にエラーは発生しませんでしたが、実行すると上記のエラーが発生しました。調査の10分後、実行中に次の問題が見つかりましたangularサーバー自体:
これは、HomeComponentモジュールのパスが空だったためです。
このコードはdotnetツールによって自動生成されたので、なぜこれが省略されたのかわかりません。 HomeComponentモジュールはHomeフォルダーにあります。したがって、パスを追加すると問題が解決しました。
これは他の初心者にも役立ちます。