동적으로 설정파 소스에서 경로.Net 핵심 3.1

0

질문

나는가.Net 핵심 3.1 응용 프로그램에 나가 사용하는 API 를 하지만 그것 또한 제공합 내 스파(각도). 최근로 나는 몇 가지 문제 SEO 그래서 나는 것처럼 봉사하는 고정된 버전의 내 각 경우 응용 프로그램 Googlebot 하고 있다고 한다.

여기에는 어떤 방법을 동적으로 설정파 source path?

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

현재 제가 작은 미들웨어 파일 내가 감지하 Googlebot 에 따라 UserAgent 문자열입니다. 그런 다음 전달을 통한 요청을 합니다.

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

그러나 나에 액세스할 수 없는 요청에 구성()메소드에서 시작합니다.cs 파일에 있습니다. 가 있으면 좋겠습니다 어떻게 만들 수 있습니다 이 작품은? 내가 정말 원 할 수 있는 동적으로 설정 원본 경로.

많은 감사!

감사

1

최고의 응답

-1

다음을 시도할 수 있습니다 코드고,미들웨어 구성에서()방법입니다.

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

내가 사용하여 미들웨어 등의 보류를 얻을 요청할 수 있도록 확인합 UserAgent. 지 않았어 아직 찾을 수 있는 방법을 설정 앱 스파 설정 내부의 미들웨어 클래스를 해결하는 것이 내 문제!
Schippert

그렇습니다,당신은 맞습니다. 나는 당신이 사용되는 미들웨어 등의 보류를 얻을 요청합니다. 난 당신을 시도 할 수 있습을 넣어 미들웨어 구성에서()다음 예제 코드에서 문서를 사용하여 만들기를 미들웨어 구성 요소입니다. 다음은 필요가 없는 응용 프로그램을 설정파 설정 내부의 미들웨어 클래스입니다. 물론,응용 프로그램을 설정파 설정 내부의 미들웨어 클래스가 다른 방법이다.
Qing Guo

슬프게도 나는 그것을 만들 수 없습니다. 면 이동하는 코드가 내부에 미들웨어의됩니다. 방법은 없는 방법을 확인할 수 있습니다 요청을 처리할 때 구성하는 방법에서 시작 클래스?
Schippert

I edit my answer 희망,그것은 당신을 도울 수 있습니다.
Qing Guo

예! 그것은 올바른 방향으로! 를 사용하여 조건부 미들웨어를 할 수 있습니다.(App.이 사용하). 그러나 거기에는 또한 무언가에 ConfigureServices 방법 설정하는 rootpath(AddSpaStaticFiles)는 어쩌면을 일으키는 왜 그것은 아직 작동합니다.
Schippert

은 당신의 문제가 해결되었?
Qing Guo

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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