updates with static fallback if CDN fails