フィンガープリントとクエリ パラメータを使用したい。query param メソッドは常に機能するとは限らず、ほとんどのプロキシはそれをキャッシュしません。URL または実際のファイル名を変更すると、より効果的です。
Maven、Git、Tomcat、Dojo プロジェクトでこれをどのように扱っているかを次に示します。http://mojo.codehaus.org/buildnumber-maven-plugin/を使用して Git rev を取得します。次に、WAR をビルドするときにフィルタリングを使用して、値を JSP に挿入します。
pom.xml
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<shortRevisionLength>8</shortRevisionLength>
<revisionOnScmFailure></revisionOnScmFailure>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warName>${project.name}-${project.version}-${buildNumber}</warName>
<webResources>
<resource>
<directory>src/main/webapp/WEB-INF/views/includes</directory>
<targetPath>WEB-INF/views/includes</targetPath>
<filtering>true</filtering>
</resource>
</webResources>
......
</configuration>
</plugin>
私のメインのJSPには、私が持っている
<script src="${pageContext.request.contextPath}/${buildNumber}/static/js/ckeditor/ckeditor.js"></script>
<script src="${pageContext.request.contextPath}/${buildNumber}/static/js/build/dojo/dojo.js" data-dojo-config="parseOnLoad: true"></script>
書き換えを行うには、http://tuckey.org/urlrewrite/を使用しています。私にはたった1つの簡単なルールがあります。
私の最初のフィルター エントリ web.xml
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
urlrewrite.xml
<rule match-type="regex">
<from>^/[0-9A-Za-z_.\-]+/static/(.*)$</from>
<to>/static/$1</to>
</rule>