Use appropriate HTTP cache headers based on content mutability. For immutable assets (like digest-stamped files), apply aggressive caching with far-future expiry and the immutable flag. For mutable files, use short cache times to balance between preventing thundering herds and allowing timely updates.
Use appropriate HTTP cache headers based on content mutability. For immutable assets (like digest-stamped files), apply aggressive caching with far-future expiry and the immutable flag. For mutable files, use short cache times to balance between preventing thundering herds and allowing timely updates.
For immutable assets:
# Assets in /assets/ are expected to be immutable with content-based filenames
if path.start_with?("/assets/")
"public, immutable, max-age=#{1.year.to_i}"
else
"public, max-age=#{1.minute.to_i}, stale-while-revalidate=#{5.minutes.to_i}"
end
Prefer simple path-based checks over regex patterns when identifying asset types, as implementation details may change. For non-asset files like robots.txt or sitemap.xml, use very short cache times (1-5 minutes) with stale-while-revalidate to improve performance while ensuring content freshness.
Enter the URL of a public GitHub repository