2016-06-28 12 views
0

古いjsとcssがキャッシュされないように、VersionResourceResolverを使用しようとしています。現在、Spring用にXMLベースの設定を使用しています。私はこのコードをコピー:コンフィグレーションxmlベース(Spring)のリソースバージョニング

<mvc:resources mapping="/resources/**" location="/public-resources/"> 
    <mvc:resource-chain> 
     <mvc:resource-cache/> 
     <mvc:resolvers> 
      <mvc:version-resolver> 
       <mvc:content-version-strategy patterns="/**"/> 
      </mvc:version-resolver> 
     </mvc:resolvers> 
    </mvc:resource-chain> 
</mvc:resources> 

をし、自分のWebアプリケーションを起動するために、DispatcherServletので呼ば私のxmlの内側に置きました。

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 



    <context:property-placeholder location="/WEB-INF/application.properties" /> 

    <bean id="multipartResolver" 
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    </bean> 

    <mvc:annotation-driven> 
     <mvc:argument-resolvers> 
      <bean class="org.springframework.mobile.device.DeviceHandlerMethodArgumentResolver"/> 
     </mvc:argument-resolvers> 
    </mvc:annotation-driven> 

    <mvc:resources mapping="/resources/**" location="/resources/"> 
     <mvc:resource-chain> 
      <mvc:resource-cache /> 
      <mvc:resolvers> 
       <mvc:version-resolver> 
        <mvc:content-version-strategy patterns="/**"/> 
       </mvc:version-resolver> 
      </mvc:resolvers> 
     </mvc:resource-chain> 
    </mvc:resources> 

    <mvc:resources mapping="/sources/**" location="/sources/" /> 

    <aop:aspectj-autoproxy proxy-target-class="true"/> 

    <bean 
     class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> 
     <property name="proxyTargetClass" value="true" /> 
    </bean> 
    <bean id="localeResolver" 
     class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> 
     <property name="defaultLocale" value="pt_BR" /> 
    </bean> 
</beans> 

Eclipseは私に語った私のservlet.xmlで2つのエラーは、次のとおりです:私のservlet.xmlにこのコードを配置した後、私はこのようなものを持っている

cvc-complex-type.2.4.a: Invalid content was found starting with element 'mvc:resource-cache'. One of '{"http://www.springframework.org/schema/mvc":resolvers, "http://www.springframework.org/schema/mvc":transformers}' is expected. 
cvc-complex-type.4: Attribute 'resource-cache' must appear on element 'mvc:resource-chain'. 

私が何ができるか分かりません私はmvc.xsdの最後のバージョンを使用しているからです。
誰かが私の間違いを見つけるのを助けることができれば、私は感謝しています。

答えて

1

ええと、私の大学はすでにこれを解決しました。 Spring documentationが間違っていると、XMLベースのコンフィグレーションでリソースバージョン管理を使用する正しい方法は次のとおりです。

<mvc:resources mapping="/resources/**" location="/public-resources/"> 
    <mvc:resource-chain resource-cache="true"> 
     <mvc:resolvers> 
      <mvc:version-resolver> 
       <mvc:content-version-strategy patterns="/**"/> 
      </mvc:version-resolver> 
     </mvc:resolvers> 
    </mvc:resource-chain> 
</mvc:resources> 
+0

ドキュメントを更新するようにSpringチケットを作成しましたか?それは助けになるだろう。 – chenrui

+0

良いアイデア、私は約考えなかった!私はそれをやる! –

関連する問題