32 lines
		
	
	
		
			793 B
		
	
	
	
		
			Caddyfile
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			793 B
		
	
	
	
		
			Caddyfile
		
	
	
	
	
	
| :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
 | |
| 	}
 | |
| }
 | |
| 
 |