Dynamicky nastavení SPA zdrojová cesta .Net Jádro 3.1

0

Otázka

Mám .Net Jádro 3.1 aplikace, které používám jako API, ale slouží také LÁZNĚ (Úhlová). V poslední době mám nějaké problémy s SEO, takže bych rád, aby sloužil statické verze mého Úhlové aplikace, kdy Googlebot přijde.

Je zde nějaký způsob, jak dynamicky nastavit LÁZNĚ zdrojová cesta?

app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseSpa(spa =>
{
    spa.Options.SourcePath = "ClientApp";
});

V současné době mám malý middleware souboru, kde jsem odhalit Googlebot na základě UserAgent string. Pak jsem se projít, že prostřednictvím žádosti.

public async Task InvokeAsync(HttpContext context)
{
    var userAgent = context.Request.Headers["User-Agent"];
    context.Items["isCrawler"] = userAgent.Contains("Googlebot");
    await _next(context);
}

Ale já nelze získat přístup k Žádosti v Konfiguraci() metoda v Startu.cs souboru. Je tam stejně, jak jsem mohl, aby to fungovalo? Chci být schopna dynamicky nastavit SourcePath.

Díky moc!

Jde

1

Nejlepší odpověď

-1

Můžete zkusit následující kódy , uvedení middleware v Konfiguraci()metoda .

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
 
            app.Use(async (context, next) =>
            {
                var userAgent = context.Request.Headers["User-Agent"];
                context.Items["isCrawler"] = userAgent.Contains("Googlebot");
                if ((bool)context.Items["isCrawler"])
                {
                    app.UseSpa(spa =>
                    {
                        spa.Options.SourcePath = "ClientApp";
                    });
                }
                else {
                    //do your stufff....
                }
                // Call the next delegate/middleware in the pipeline
                await next();
            });
     …}
2021-11-25 01:41:49

Jsem použít Middleware třídy, sehnat Žádosti, takže můžu určit UserAgent. Nechtěl jsem ještě najít, jak nastavit aplikaci spa nastavení uvnitř middleware třídy, který by vyřešil můj problém!
Schippert

Ano, máte pravdu . Vím, že jste použili Middleware třídy, sehnat Žádosti. Chci říct, můžete se pokusit dát middleware v Konfiguraci()metoda, stejně jako ukázkový kód v dokumentu je použít k prokázání vytvoření middleware komponenty. Pak se nemusíte nastavit aplikaci spa nastavení uvnitř middleware třídy. Samozřejmě, nastavení aplikace spa nastavení uvnitř middleware třídy, je další způsob, jak.
Qing Guo

Bohužel jsem nemohl, aby to fungovalo. Jakmile se pohnu, že kód uvnitř Middleware to zlomí. Existuje nějaký způsob, jak mohu zkontrolovat, žádost při zpracování Nakonfigurovat metodu v class Startup?
Schippert

Upravit moje odpověď, že to může pomoci.
Qing Guo

Ano! To je ten správný směr! Pomocí podmíněného middleware by mělo stačit (App.Použitíkdyž funguje). ALE tam je také něco, co v ConfigureServices metoda, která je nastavení rootpath (AddSpaStaticFiles), která je možná příčinou, proč se zatím pracuje.
Schippert

Má váš problém vyřešen?
Qing Guo

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................