प्रौद्योगिकी:दृश्य स्टूडियो एकल पृष्ठ अनुप्रयोग एकीकरण
- विजुअल स्टूडियो 2017
- Asp.Net कोर टूलींग 1.1
- .Net Framework 4.6.2
एकल पृष्ठ आवेदन की और उनके एकीकरण विजुअल स्टूडियो में बनाए गए सभी नए समर्थन के साथ विजुअल स्टूडियो में आसान हो गया है। लेकिन सप्ताह की शुरुआत में, जेफ़री टी फ्रिट्ज एकीकरण पर वास्तव में एक अच्छा लेख और लागू करने निम्न पैकेज के साथ जारी:
Microsoft.AspNetCore.SpaServices
Microsoft.AspNetCore.NodeServices
आप के माध्यम से जाने के लिए और यहां तक कि एक विश्लेषण के बाद कुछ टेम्पलेट्स, आप अपने समाधान एक्सप्लोरर में नोटिस करेंगे, ClientApp
नामक एक निर्देशिका। यह कॉन्फ़िगर किया गया है, और वेबपैक के माध्यम से मार्गित किया गया है।
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" });
});
}
हमारे अनुरोध के अंदर, हमारे पास हमारे एमवीसी फ्रेमवर्क में कुछ रूटिंग है।
प्रश्न, हमें इस मार्ग को निर्दिष्ट करने की आवश्यकता क्यों है? यदि हम बस 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 में सीधे आइटम संकुचित नहीं कर रहे हैं, यह भी सुरक्षा रिसाव सकता है, लेकिन एक तरफ उन दो कमियां से क्यों इस मार्ग का उपयोग नहीं अपने सूचकांक सुनिश्चित करने के लिए और क्लाइंट साइड राउटर हमेशा वापस नहीं आते हैं?
मैं विशेष रूप से MVC मजबूर कर हमेशा एक Home/Index
या UseDefaultFiles()
/UseStaticFiles()
वापस जाने के लिए की अवधारणा के बारे में पूछ रहा हूँ। मुझे क्या याद आ रहा है, हमें इसे वापस करने के लिए एमवीसी को मजबूर करने के लिए क्यों कहा जा रहा है?
महत्वपूर्ण: मूल रूप से इस मुद्दे को निशाना बनाया, कैसे मजबूर करने के लिए सूचकांक तो हमारे ग्राहक के पक्ष ढांचे के रूटर एक विशेष दृश्य राज्य लौटने बैकएंड बनाम परिवर्तन से निपटने है लौटा दी है।
उनका पहला नाम "जेफरी" है और लेख है: https://blogs.msdn.microsoft.com/webdev/2017/02/14/building-single-page-plplications-on-asp-net-core-with-javascriptservices/ –