テクノロジー:Visual Studioの単一ページアプリケーション統合
- のVisual Studio 2017
- Asp.Netコアツーリング1.1
- の.NET Framework 4.6.2
単一ページのアプリケーションの統合とそのVisual Studioに組み込まれているすべての新しいサポートがVisual Studioに組み込まれています。あなたが通過し、さらには分析した後
Microsoft.AspNetCore.SpaServices
Microsoft.AspNetCore.NodeServices
:しかし、以前の週で、ジェフリーT.フリッツは、統合と、次のパッケージに実装する上で本当に素晴らしい記事をリリースいくつかのテンプレートを使用すると、Solution ExplorerにClientApp
というディレクトリがあります。これは設定され、Webpack経由でルーティングされます。
Startup.cs
の中に問題が明らかになります。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true
});
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller = "Home", action = "Index" });
});
}
私たちのリクエストでは、MVCフレームワークへのルーティングがあります。
質問、なぜこのルートを指定する必要がありますか?app.UseDefaultFiles()
とapp.UseStaticFiles()
を単純に使用し、wwwrootでインデックスを指定している場合は、私たちのクライアント側ルータは常に返されます。では、なぜ我々はそれをこのように行いません。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true
});
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseDefaultFiles();
app.UseStaticFiles();
}
を私が直接私たちのwwwrootの内のアイテムが圧縮されていないこと、またセキュリティを漏らすことができますが、さておき、これら2つの欠点から、なぜあなたのインデックスを確保するために、このルートを使用しないで理解クライアントサイドルータが返されるとは限りません。
私は、具体的には、常にHome/Index
またはUseDefaultFiles()
/UseStaticFiles()
を返すようにMVCを強制する概念について尋ねています。私は何が不足していますか、なぜMVCにそれを返すように指示されていますか?
重要:基本的には、インデックスが強制的に返され、クライアント側のフレームワークのルータが変更を処理し、バックエンドが特定のビュー状態を返すようにする方法です。
彼の最初の名前は「ジェフリー」であるとの記事がで次のとおりです。https:/ /blogs.msdn.microsoft.com/webdev/2017/02/14/building-single-page-applications-on-asp-net-core-with-javascriptservices/ –