Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用SpaPrerenderingExtensions时设置自定义标题并启用压缩?_C#_Angular_Asp.net Core_Server Side Rendering_Asp.net Core 3.1 - Fatal编程技术网

C# 如何在使用SpaPrerenderingExtensions时设置自定义标题并启用压缩?

C# 如何在使用SpaPrerenderingExtensions时设置自定义标题并启用压缩?,c#,angular,asp.net-core,server-side-rendering,asp.net-core-3.1,C#,Angular,Asp.net Core,Server Side Rendering,Asp.net Core 3.1,我有一个Angular应用程序,在.NETCore后端启用了服务器端渲染 对于预渲染,我的启动文件中有以下代码: spa.UseSpaPrerendering(options => { options.BootModulePath = $"{spa.Options.SourcePath}/server/main.js"; options.BootModuleB

我有一个Angular应用程序,在.NETCore后端启用了服务器端渲染

对于预渲染,我的启动文件中有以下代码:

spa.UseSpaPrerendering(options =>
                {
                    options.BootModulePath = $"{spa.Options.SourcePath}/server/main.js";
                    options.BootModuleBuilder = env.IsDevelopment() ? new AngularCliBuilder(npmScript: "build:ssr") : null;
                    options.ExcludeUrls = new[] { "/sockjs-node"};

                });
在当前实施的
UseSpaPrerendering
中,在“我的启动”中设置的自定义标题和压缩设置将被忽略。我做了一点调查,发现

SpaPrerenderingExtensions
中的
ServePrenderResult
方法可在
Microsoft.AspNetCore.SpaServices.Extensions
下获得,该方法清除启动文件中设置的所有头,因为其中包含以下代码:

context.Response.Clear();
现在,我有两个目标:

  • 为预渲染响应设置自定义标题(主要是
    MaxAge
    标题)
  • 启用压缩,以便以压缩形式返回预渲染输出
  • 我知道
    Microsoft.AspNetCore.SpaServices.Extensions
    已被标记为
    已弃用
    ,不再维护

    请任何人指导实现上述目标的方法

    我能想到的一个解决方案是从

    重命名
    UseSpaPrerendering
    ,注释掉
    context.Response.Clear()
    然后在我的启动中使用此方法

    我不确定这种方法是否合适

    如果这种方法是正确的,请任何人指导是否是该文件的最新版本

    我目前在采用这种方法时面临的一个问题是由于以下代码:

                await buildOnDemandTask.WithTimeout(buildTimeout,
                    $"The prerendering build process did not complete within the " +
                    $"timeout period of {buildTimeout.Seconds} seconds. " +
                    $"Check the log output for error information.");
    
    编译器抛出有关
    buildOnDemandTask的错误。WithTimeout

    任务不包含带超时的
    定义

    任何帮助都将不胜感激

    谢谢大家!