:3081 { root * dist # Match requests with trailing slashes and rewrite them @trailing_slash { path_regexp strip_slash ^(.+)/$ # Match paths ending with / } rewrite @trailing_slash {re.strip_slash.1} # Remove the trailing slash try_files {path}.html {path}/index.html {path} encode zstd gzip file_server # Cache images, videos, fonts, etc. for 1 year (365 days) @static_assets { path_regexp static_assets \.(jpg|jpeg|png|gif|svg|ico|mp4|webm|woff|woff2|eot|ttf|otf|js)$ } header @static_assets Cache-Control "public, max-age=31536000, immutable" # Optionally, you can set a fallback for other files header ?Cache-Control "public, max-age=3600" handle_errors { @404 { expression {http.error.status_code} == 404 } rewrite @404 /not-found.html file_server } }