Я пытаюсь изменить тело указанных запрошенных файлов, используя приведенный ниже код. Файл index.html правильно отправляется клиенту, но другие файлы, включенные в раздел заголовка, на стороне клиента пусты (файлы отображаются на вкладке источников в Chrome). Kestrel не сообщают ни о каких ошибках. Не могли бы вы объяснить, почему?
public static Func<HttpContext, Func<Task>, Task> Rewrite()
{
return async (context, next) =>
{
if (context.Request.Path.Value == "/")
{
var originalStream = context.Response.Body;
using (Stream bufferStream = new FileStream("./wwwroot/index.html", FileMode.Open, FileAccess.Read))
{
context.Response.Body = bufferStream;
bufferStream.Seek(0, SeekOrigin.Begin);
using (var reader = new StreamReader(bufferStream))
{
var response = await reader.ReadToEndAsync();
response = response.Replace("[ddd]", "<script type=\"text/javascript\" src=\"lib/jquery/dist/jquery.js\"></script>");
using (var writer = new StreamWriter(originalStream))
{
await writer.WriteAsync(response);
}
}
}
}
else
{
await next();
}
};
}
Конечно, эта функция зарегистрирована в файле конфигурации
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.Use(ResponseStreamRewriter.Rewrite());
}