Issue Details
It would be nice to be able to configure caddy to include file inodes when calculating ETags, similar to Apache.
My use case involves serving static files from the nix store, (see NixOS/nixpkgs#222354), where the files' modification times are always 1, per nix's reproducibility guarantees. In this case, caddy skips ETag generation entirely (#5548), which can cause caching problems where browsers fail to detect that files have changed. The currently recommended approach in the nix world seems to be to strip the Last-Modified header also, which forces browsers to re-fetch assets every time. This works, but leads to unnecessary overhead.
I think it would be nice if it were possible to configure caddy to still calculate ETags, based on file size and inode number, rather than skipping ETag generation entirely. Using inode number has some downsides, such as in load balancing scenarios, but would be very useful in single server cases.
Assistance Disclosure
AI not used
If AI was used, describe the extent to which it was used.
No response
Issue Details
It would be nice to be able to configure caddy to include file inodes when calculating ETags, similar to Apache.
My use case involves serving static files from the nix store, (see NixOS/nixpkgs#222354), where the files' modification times are always 1, per nix's reproducibility guarantees. In this case, caddy skips ETag generation entirely (#5548), which can cause caching problems where browsers fail to detect that files have changed. The currently recommended approach in the nix world seems to be to strip the
Last-Modifiedheader also, which forces browsers to re-fetch assets every time. This works, but leads to unnecessary overhead.I think it would be nice if it were possible to configure caddy to still calculate ETags, based on file size and inode number, rather than skipping ETag generation entirely. Using inode number has some downsides, such as in load balancing scenarios, but would be very useful in single server cases.
Assistance Disclosure
AI not used
If AI was used, describe the extent to which it was used.
No response