Question

How to serve static assets cache policy efficiently on Static Site App Platform Deploy

Posted March 3, 2021 211 views
DigitalOcean App Platform

After uploading a static website in App Platform using GitHub source I deploy the website and ran a Lighthouse diagnostic on it.

The diagnostic result report is tagging my static site with a note saying “Serve static assets with an efficient cache policy”

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
3 answers

@kamaln7

Serve static assets with an efficient cache policy 33 resources found
A long cache lifetime can speed up repeat visits to your page. Learn more.

This is from the lighthouse report. It’s basically that it’s seeing that 33 image/js/css resources that I have in my static site source code have no efficient caching policy.

  • It is probably related to the Cache-Control header we set for Static Apps.

    App Platform caches your app in two places: the browser and the CDN. On the browser we set a 10 second expiry, and on the CDN we set a 24 hour expiry. We do this so that can both cache your website to improve performance but also ensure that your users always get the most recent version. When the browser’s cache expires, it will fetch it directly from the closest CDN point with minimal latency. My guess is that Lighthouse does not like the “10 seconds” number.

    Despite the CDN cache being valid for 24 hours, we explicitly purge the CDN cache every time you deploy your app so the CDN will pick up the new deployment.

    We are looking into allowing more control over the Cache-Control headers that are set on Static Sites, but for now I would not worry too much about it.

👋🏼 @angelicas

Can you share more details about the Lighthouse report or your app URL if that’s ok? I just ran a Lighthouse test on a Static Site of my own (https://airlock.space) and it didn’t complain about this, so we’ll have to look more into your app specifically.