Use ETags instead of Last-Modified for caching
This commit is contained in:
parent
f2f8efdc1d
commit
c7a4d2fe0c
2 changed files with 17 additions and 2 deletions
12
flake.nix
12
flake.nix
|
|
@ -30,12 +30,22 @@
|
|||
pname = "my-static-site";
|
||||
version = "1.0.0";
|
||||
src = ./.;
|
||||
buildInputs = [ eleventy ];
|
||||
buildInputs = with pkgs; [
|
||||
eleventy
|
||||
fd
|
||||
coreutils
|
||||
];
|
||||
buildPhase = "eleventy";
|
||||
installPhase = ''
|
||||
mkdir -p $out/
|
||||
echo $out
|
||||
cp -r _site/* $out/
|
||||
|
||||
# Generate .etag files for cache validation
|
||||
for file in $(fd --type f . "$out"); do
|
||||
hash=$(md5sum "$file" | cut -d" " -f1)
|
||||
echo "\"$hash\"" > "$file.etag"
|
||||
done;
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
|
|
|||
|
|
@ -7,7 +7,12 @@ in
|
|||
enable = true;
|
||||
# Needs `http://` prefix so that it does not try to request TLS certificates and redirect to 443
|
||||
virtualHosts."http://${site-url}".extraConfig = ''
|
||||
file_server
|
||||
header {
|
||||
-Last-Modified
|
||||
}
|
||||
file_server {
|
||||
etag_file_extensions .etag
|
||||
}
|
||||
root * ${inputs.our-site.packages."${pkgs.system}".default}
|
||||
encode gzip
|
||||
'';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue