动态设定的温泉源的路径。净核心3.1

0

的问题

我有一个.净核心3.1申,我作为一个API,但它也是我的SPA(角). 最近我有一些问题与搜索引擎优化所以我想成为一个静态版本的我的角度应用程序时的蜘蛛来。

是这里的任何方式来动态设定的温泉源的路径?

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

目前我有一个小的中间件的文件里我检测蜘蛛的基础上的简串。 然后我通过,通过的请求。

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

但我无法访问请求的配置()方法启动。cs文件。 有什么我可以做这项工作? 我真的希望能够动态设定的SourcePath.

非常感谢!

关于

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

我用的是中间类得到举行该请求所以我可以确定的宗旨是寻求. 我还没找到如何设置的应用程序水疗中心设置内部的一个中间类,这将解决我的问题!
Schippert

是的,你是正确的。 我知道你已经使用的中间类得到保持该请求。 我的意思是你可以尝试把中间件配置的方法,像这样的代码,在文件是用来展示创建一个中间件的组成部分。 然后你不用来设定程序水疗中心设置内部的一个中间类。 当然,设置的应用程序水疗中心设置内部的一个中间类的另一种方式。
Qing Guo

可悲的是,我不能让它工作。 一旦我动代码的中间它打破。 是否有任何方式如何,我可以检查的请求时,处理配置的方法在启动类?
Schippert

我编辑我的答案,希望它可以帮助你。
Qing Guo

是的! 这是去正确的方向! 使用条件中间应该做的伎俩(应用程序。时). 但也有一些在ConfigureServices方法是设置rootpath(AddSpaStaticFiles)就是可能造成的为什么它不工作。
Schippert

有你的问题已经解决了吗?
Qing Guo

其他语言

此页面有其他语言版本

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