Skip to content

Commit 8d1543b

Browse files
[C#] GenHTTP: PÃre-compress static files
1 parent aaf8fde commit 8d1543b

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

frameworks/genhttp/Project.cs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
using GenHTTP.Api.Content;
1+
using System.IO.Compression;
2+
using GenHTTP.Api.Content;
3+
using GenHTTP.Modules.Compression;
24
using GenHTTP.Modules.IO;
35
using GenHTTP.Modules.Layouting;
46
using GenHTTP.Modules.Layouting.Provider;
7+
using GenHTTP.Modules.ServerCaching;
58
using GenHTTP.Modules.Webservices;
69
using GenHTTP.Modules.Websockets;
710

@@ -34,7 +37,19 @@ private static LayoutBuilder AddStaticFiles(this LayoutBuilder app)
3437
{
3538
if (Directory.Exists("/data/static"))
3639
{
37-
app.Add("static", Resources.From(ResourceTree.FromDirectory("/data/static")));
40+
var tree = ResourceTree.FromDirectory("/data/static");
41+
42+
var compression = CompressedContent.Default()
43+
.Level(CompressionLevel.Optimal);
44+
45+
var cache = ServerCache.TemporaryFiles()
46+
.Invalidate(false);
47+
48+
var handler = Resources.From(tree) // serve static resources
49+
.Add(compression) // compress them on-the-fly
50+
.Add(cache); // cache the compressed results
51+
52+
app.Add("static", handler);
3853
}
3954

4055
return app;

frameworks/genhttp/genhttp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
</PropertyGroup>
99
<ItemGroup>
1010
<PackageReference Include="GenHTTP.Core" Version="10.5.0" />
11-
<PackageReference Include="GenHTTP.Modules.Functional" Version="10.5.0" />
11+
<PackageReference Include="GenHTTP.Modules.ServerCaching" Version="10.5.0" />
1212
<PackageReference Include="GenHTTP.Modules.IO" Version="10.5.0" />
1313
<PackageReference Include="GenHTTP.Modules.Layouting" Version="10.5.0" />
1414
<PackageReference Include="GenHTTP.Modules.Webservices" Version="10.5.0" />

0 commit comments

Comments
 (0)