Static resources allow you to upload content that you can reference in a Visualforce page, including archives (such as .zip and .jar files), images, stylesheets, JavaScript, and other files.

Using a static resource is preferable to uploading a file to the Documents tab because: You can package a collection of related files into a directory hierarchy and upload that hierarchy as a .zip or .jar archive.

You can reference a static resource by name in page markup by using the $Resource global variable instead of hard coding document IDs.

In addition, using static resources to refer to JavaScript or cascading style sheets (CSS) is preferable to including the markup inline. Managing this kind of content using static resources allows you to have a consistent look and feel for all your pages and a shared set of JavaScript functionality.

A single static resource can be up to 5 MB in size, and an organization can have up to 250 MB of static resources, total.

Useful Documentation