Skip to content

Commit fd03342

Browse files
authored
Merge pull request #1568 from riganti/fix-resource-content-length
Set the Content-Length header in resource middleware
2 parents 857e903 + 6844348 commit fd03342

File tree

4 files changed

+8
-2
lines changed

4 files changed

+8
-2
lines changed

src/Framework/Framework/Hosting/Middlewares/DotvvmLocalResourceMiddleware.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public async Task<bool> Handle(IDotvvmRequestContext request)
3333
request.HttpContext.Response.Headers.Add("Cache-Control", new[] { "no-cache, no-store, must-revalidate" });
3434
using (var body = resource.LoadResource(request))
3535
{
36+
if (body.CanSeek)
37+
request.HttpContext.Response.Headers["Content-Length"] = body.Length.ToString();
38+
3639
await body.CopyToAsync(request.HttpContext.Response.Body);
3740
}
3841
return true;

src/Framework/Framework/Hosting/Middlewares/DotvvmReturnedFileMiddleware.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ private async Task RenderReturnedFile(IHttpContext context, IReturnedFileStorage
7676
}
7777
}
7878

79+
if (stream.CanSeek)
80+
context.Response.Headers["Content-Length"] = stream.Length.ToString();
81+
7982
context.Response.StatusCode = (int)HttpStatusCode.OK;
8083
await stream.CopyToAsync(context.Response.Body);
8184
}

src/Framework/Hosting.AspNetCore/Hosting/DotvvmHttpContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,4 @@ public IEnumerable<Tuple<string, IEnumerable<KeyValuePair<string, object>>>> Get
3737
.Select(k => new KeyValuePair<string, object>(k.Key.ToString(), k.Value)));
3838
}
3939
}
40-
}
40+
}

src/Framework/Hosting.AspNetCore/Hosting/DotvvmHttpResponse.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,4 @@ public Task WriteAsync(string text, CancellationToken token)
6464
return OriginalResponse.WriteAsync(text, token);
6565
}
6666
}
67-
}
67+
}

0 commit comments

Comments
 (0)