CompressedStaticFiles.AspNet
1.0.0
See the version list below for details.
dotnet add package CompressedStaticFiles.AspNet --version 1.0.0
NuGet\Install-Package CompressedStaticFiles.AspNet -Version 1.0.0
<PackageReference Include="CompressedStaticFiles.AspNet" Version="1.0.0" />
paket add CompressedStaticFiles.AspNet --version 1.0.0
#r "nuget: CompressedStaticFiles.AspNet, 1.0.0"
// Install CompressedStaticFiles.AspNet as a Cake Addin #addin nuget:?package=CompressedStaticFiles.AspNet&version=1.0.0 // Install CompressedStaticFiles.AspNet as a Cake Tool #tool nuget:?package=CompressedStaticFiles.AspNet&version=1.0.0
CompressedStaticFiles.AspNet
Table of Contents
About The Project
This project allows you to serve precompressed files to the browser without having to compress on demand, this is achieved by compressing/encoding your content at build time.
Getting Started
Precompress content
Static nonimage files have to be precompressed using Gzip and/or Brotli, see the example CompressedStaticFiles.csproj for an automated methodology for producing compressed css & js files.
The files must have the exact same filename as the source + .br
or .gzip
(index.html
would be index.html.br
for the Brotli version).
Encode images
Modern browsers support new image formats like webp and avif they can store more pixels per byte.
You can convert your images using the following tools webp and libavif.
The files must have the same filename as the source but with a new file extension (image.jpg
would be image.webp
for the webp version).
ASP.NET
Add AddCompressedStaticFiles()
in your Startup.ConfigureServices()
method.
Replace UseStaticFiles();
with UseCompressedStaticFiles();
in Startup.Configure()
.
By default CompressedStaticFiles is configured to allow slightly larger files for some image formats as they can store more pixels per byte, this can be disabled by calling CompressedStaticFileOptions.RemoveImageSubstitutionCostRatio()
.
Example
An example can be found in the Example directory.
By using this package the Lighthouse mobile performance went from 76
to 98
and the transferred size went from 526 kb
to 141 kb
.
Acknowledgements
This solution is developed from a clone of AnderssonPeter/CompressedStaticFiles, which was based upon work by @neyromant from the following issue ASP.NET Issue #1584.
We built this cloned project because:
- We wanted to update to the currently supported version of .NET;
- To make some refinements that were to our taste; and
- To add MSBuild code to the example CSPROJ file to build Brotli and Gzip compressed CSS and JS files, using a method contributed by SQL-MisterMagoo.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.