Communities allow you to specify an HTML document as a header. However, it's just static HTML – no VisualForce. Therefore, you can't use URLFOR() to generate cache busting URLs to static resources, and you're stuck using the "cache forever" URLs, .e.g.:
/community-name/resource/MyStaticResource/js/some-code.js
I currently use a build step that generates cache busting URLs and merges them into the HTML document any time the static resource zip is built, but I'm wondering if there's a simpler way.