Resources refers to any software artifacts that the application requires for proper rendering. They include images, script files and any user-created component libraries. As of JavaServer Faces 2.0, resources must be collected in a standard location, which can be one of the following:
A resource packaged in the web application root must be in a subdirectory of a resources directory at the web application root: resources/<resource-identifier>.
A resource packaged in the web application's classpath must be in a subdirectory of the META-INF/resources directory within a web application: META-INF/resources/<resource-identifier>.
The JavaServer Faces runtime will look for the resources in the above listed locations, in that order.
Resource identifiers are unique strings that conform to the following format:
[localePrefix/][libraryName/][libraryVersion/]resource name[/resourceVersion]
Elements of the resource identifier in brackets ([]) are optional. This indicates that only a resource name is a required element, which is usually a file name.
Resources can be considered as a library location. Any artifacts, like a composite component or template that is stored under resources directory, becomes accessible to the other components of the application which can use them to create a resource instance.