diff --git a/spring-framework-reference/src/mvc.xml b/spring-framework-reference/src/mvc.xml
index dc7e0b7e4f..35191f79d0 100644
--- a/spring-framework-reference/src/mvc.xml
+++ b/spring-framework-reference/src/mvc.xml
@@ -3354,6 +3354,69 @@ public class SimpleController {
]]>
+
+ mvc:resources
+
+ This tag allows static resource requests following a particular URL pattern to be served by a ResourceHttpRequestHandler from
+ any of a list of Resource locations. This provides a convenient way to serve static resources from locations other than the
+ web application root, including locations on the classpath, and the resources are served with far future expiration headers (1 year, as recommended by
+ optimization tools such as Page Speed and YSlow) so that they will be more efficiently utilized by the client. For example, to serve resource requests
+ with a URL pattern of /resources/**
from a public-resources
directory within the web application root, the tag would be used
+ as follows:
+
+ ]]>
+
+
+ The mapping
attribute must be an Ant pattern that can be used by SimpleUrlHandlerMapping, and the location
+ attribute must specify one or more valid resource directory locations. Multiple resource locations may be specified using a comma-seperated list of values.
+ The locations specified will be checked in the specified order for the presence of the resource for any given request. For example, to enable the serving
+ of resources from both the web application root and from a known path of /META-INF/public-web-resources/
in any jar on the classpath, the tag
+ would be specified as:
+
+ ]]>
+
+
+ When serving resources that may change when a new version of the application is deployed, it is recommended that you incorporate a version string into the
+ mapping pattern used to request the resources, so that you may force clients to request the newly deployed version of your application's resources. Such a
+ version string can be parameterized and accessed using SpEL so that it may be easily managed in a single place when deploying new versions.
+
+
+ As an example, let's consider an application that uses a performance-optimized custom build (as recommended) of the Dojo JavaScript library in production, and that the build is generally
+ deployed within the web application at a path of /public-resources/dojo/dojo.js
. Since different parts of Dojo may be incorporated into the
+ custom build for each new version of the application, the client web browsers need to be forced to re-download that custom-built dojo.js
resource
+ any time a new version of the application is deployed. A simple way to achieve this would be to manage the version of the application in a properties file,
+ such as:
+
+
+
+
+ and then to make the properties file's values accessible to SpEL as a bean using the util:properties
tag:
+
+ ]]>
+
+
+ With the application version now accessible via SpEL, we can incorporate this into the use of the resources
tag:
+
+ ]]>
+
+
+ and finally, to request the resource with the proper URL, we can take advantage of the Spring JSP tags:
+
+
+
+
+
+
+
+]]>
+
+
More Spring Web MVC Resources