zoukankan      html  css  js  c++  java
  • mvc:resources

    http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources

    15.12.4 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. The cache-period property may be used to set far future expiration headers (1 year is the recommendation of optimization tools such as Page Speed and YSlow) so that they will be more efficiently utilized by the client. The handler also properly evaluates the Last-Modified header (if present) so that a 304 status code will be returned as appropriate, avoiding unnecessary overhead for resources that are already cached 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:

    ()

    <mvc:resources mapping="/resources/**" location="/public-resources/"/>
      		

    To serve these resources with a 1-year future expiration to ensure maximum use of the browser cache and a reduction in HTTP requests made by the browser:

    <mvc:resources mapping="/resources/**" location="/public-resources/" cache-period="31556926"/>
      		

    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:

    <mvc:resources mapping="/resources/**" location="/, classpath:/META-INF/public-web-resources/"/>
      		

    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:

    application.version=1.0.0
      		

    and then to make the properties file's values accessible to SpEL as a bean using the util:properties tag:

    <util:properties id="applicationProps" location="/WEB-INF/spring/application.properties"/>
      		

    With the application version now accessible via SpEL, we can incorporate this into the use of the resources tag:

    <mvc:resources mapping="/resources-#{applicationProps['application.version']}/**" location="/public-resources/"/>
      		

    and finally, to request the resource with the proper URL, we can take advantage of the Spring JSP tags:

    <spring:eval expression="@applicationProps['application.version']" var="applicationVersion"/>
    
    <spring:url value="/resources-{applicationVersion}" var="resourceUrl">
    	<spring:param name="applicationVersion" value="${applicationVersion}"/>
    </spring:url>
    
    <script src="${resourceUrl}/dojo/dojo.js" type="text/javascript"> </script>
      		
  • 相关阅读:
    sql语句常考知识点总结
    服务器搭建
    软件测试面试题
    linux常用命令
    kibana常用查询删除语法
    python从kafka消费数据
    foxmail客户端,写邮件窗口弹不出来
    JMeter学习——测试文件下载
    python中取两个列表中不同的元素
    MySQL主从复制
  • 原文地址:https://www.cnblogs.com/rocky-AGE-24/p/5137357.html
Copyright © 2011-2022 走看看