diff options
author | Nicolas Guichard <nicolas@guichard.eu> | 2023-03-02 18:38:04 +0100 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2023-03-15 23:14:34 +0000 |
commit | 9d9c3bf943768424b81db7d22943e198865931ca (patch) | |
tree | 5791695e39ca9c76e24c697c211dd531cad770c5 | |
parent | 1d217b2b00101605319161385b18d74376dde963 (diff) | |
download | nextcloud-server-9d9c3bf943768424b81db7d22943e198865931ca.tar.gz nextcloud-server-9d9c3bf943768424b81db7d22943e198865931ca.zip |
Fix Cache-Control header of non-versioned assets
Non-cache-busted assets such as /dist/core-main.js also matched the
regex meant for cache-busted assets (note the ? at the end of the
regex).
The FilesMatch directive for cache-busted assets coming after the
non-cache-busted version all assets actually got the immutable flag
in their Cache-Control header. This caused client-side errors on
updates.
Query strings are not actually passed to FilesMatch directives so we
need another way to tell cache-busted/versionned assets apart from
non-versioned assets, here using If/Else directives.
Signed-off-by: Nicolas Guichard <nicolas@guichard.eu>
-rw-r--r-- | .htaccess | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/.htaccess b/.htaccess index dd0fce231e8..956e29ea7c4 100644 --- a/.htaccess +++ b/.htaccess @@ -41,11 +41,12 @@ # Add cache control for static resources <FilesMatch "\.(css|js|svg|gif|png|jpg|ico|wasm|tflite)$"> - Header set Cache-Control "max-age=15778463" - </FilesMatch> - - <FilesMatch "\.(css|js|svg|gif|png|jpg|ico|wasm|tflite)(\?v=.*)?$"> - Header set Cache-Control "max-age=15778463, immutable" + <If "%{QUERY_STRING} =~ /(^|&)v=/"> + Header set Cache-Control "max-age=15778463, immutable" + </If> + <Else> + Header set Cache-Control "max-age=15778463" + </Else> </FilesMatch> # Let browsers cache WOFF files for a week |