Http.sys और URLPrefix का उपयोग करते समय रिएक्ट एसपीए की सेवा करने के लिए डॉटनेट कोर 3 को कॉन्फ़िगर कैसे करें?


9

URLPrefix को बदलने के बाद मुझे निम्नलिखित त्रुटि मिलती है:

एसपीए डिफ़ॉल्ट पेज मिडलवेयर डिफ़ॉल्ट पेज '/index.html' को वापस नहीं कर सका क्योंकि यह नहीं मिला, और किसी अन्य मिडलवेयर ने अनुरोध को संभाला नहीं।

इस प्रकार उपसर्ग के बारे में डॉटनेट कोर बताने के लिए कुछ आवश्यक है लेकिन मैं सेटिंग्स का सही संयोजन नहीं ढूंढ सकता।

बहुत सराहना की मदद करो।

कोड नीचे है:

HostBuilder के साथ सेटअप है:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseHttpSys(options =>
        {
            options.AllowSynchronousIO = false;
            options.Authentication.Schemes = AuthenticationSchemes.None;
            options.Authentication.AllowAnonymous = true;
            options.MaxConnections = null;
            options.MaxRequestBodySize = 30000000;
            options.UrlPrefixes.Add("http://localhost:5005/Product/Site");
        });
        webBuilder.UseStartup<Startup>();
    });

ConfigureServices:

public override void ConfigureServices(IServiceCollection services)
{
  services.AddRazorPages();

  services.AddSpaStaticFiles(configuration =>
  {
    configuration.RootPath = "ClientApp/build";
  });

  services.AddMvc();
  services.AddResponseCompression(opts =>
  {
    opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(
              new[] { "application/octet-stream" });
  });
}

और फिर कॉन्फ़िगर करें:

      app.UseSpaStaticFiles();
      app.UseRouting();
      app.UseEndpoints
      (
        endpoints =>
        {
          endpoints.MapControllerRoute(
              name: "default",
              pattern: "{controller}/{action=Index}/{id?}");
        }
      );

      app.UseSpa(spa =>
      {
        //spa.Options.DefaultPage = reactPath + "/index.html";
        spa.Options.DefaultPage = "/index.html";

        spa.Options.SourcePath = "ClientApp";


      });

जवाबों:


3

यह एक ऐसा मुद्दा प्रतीत होता है जहाँ वास्तविक स्थिर फ़ाइलों का मार्ग खो जाता है। अपने StaticFilesOptions में यह सुनिश्चित करें कि आप अपने index.html स्टैटिक फाइल्स के पथ के साथ एक फ़ाइल प्रदाता प्रदान कर रहे हैं।

spa.Options.DefaultPageStaticFileOptions = new StaticFileOptions
            {
              FileProvider = new PhysicalFileProvider
              (
                @"<YourPath>"
              )
            }

इन विकल्पों के लिए आगे का विवरण Microsoft के प्रलेखन में पाया जा सकता है।

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.