does anyone know how to set up CloudFront Caching correctly? I've got a Jekyll website in S3 and CloudFront set up like this:
Path Pattern: Default (*)
Minimum TTL: 86400
Maximum TTL: 604800
Default TTL: 86400
But when I use Pingdom.com or PageSpeed Insights I get a message:
The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future for the following resources
The TTL you've configured within CloudFront is in relation to CloudFront's internal caching, and not on a per browser level.
Essentially, you are telling CloudFront to keep the file in it's Edges for a minimum of 86400 seconds etc.
To communicate a maximum/minimum TTL to a browser, you need to add a Cache-Control HTTP header to the requested file.
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html