Mat*_*all 9 jboss tomcat caching auto-versioning
根据这里的问答,我想为在JBoss 5中运行的Web应用程序实现类似的自动版本系统.有什么东西可以用来做这种事情,还是我需要自己写一些东西?要明确:我没有使用PHP.
不太了解PHP,我不确定PHP的Tomcat/JBoss类似物.htaccess是什么.如果我必须编写自己的自动版本,我会从哪里开始?原理很清楚 - 使用文件的时间戳重写URL,但我不太了解使用JBoss/Tomcat进行URL重写.
1.自定义<my:script/>和<my:style/>标签,所以我不必在<c:url/>任何地方看到标签.
<%@ tag body-content="empty" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ attribute name="src" required="true" rtexprvalue="true" %>
<script src="<c:url value="${src}" />"></script>
Run Code Online (Sandbox Code Playgroud)
2.相当紧随新手的步骤,但映射UrlRewriteFilter到/*在web.xml中:
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
3.向每个新会话(或多或少......)注入CACHE_BUST变量,应用程序部署 timestamp:
// On application deploy:
long CACHE_BUST = System.currentTimeMillis() / 1000;
// later...
session.setAttribute("cacheBust", CACHE_BUST);
Run Code Online (Sandbox Code Playgroud)
4. ...so that I can use these rules in urlrewrite.xml以下方面使用这些规则:
<outbound-rule>
<from>^/static/(css|js|images)/(.*)$</from>
<to>%{context-path}/static/%{session-attribute:cacheBust}/$1/$2</to>
</outbound-rule>
<rule>
<from>^/static/\d{10}/(css|js|images)/(.*)$</from>
<to>/static/$1/$2</to>
</rule>
Run Code Online (Sandbox Code Playgroud)
以下解决方案更适合生产环境,因为您将增加每个版本的版本号。
方法:
脚步:
使用 url 模式更新 web.xml,例如,
<filter>
<filter-name>urlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>urlRewriteFilter</filter-name>
<url-pattern>/v/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)更新jsp文件中的'abc.js',例如,
<html>
<head>
<script type="text/javascript" src="<c:url value="/v/js/abc.js"/>"></script>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)编写 urlrewritefilter.xml,例如,
<outbound-rule>
<from>^/v/(css|js|static)/(.*)$</from>
<to>%{context-path}/v/updateVersionNumberHere/$1/$2</to>
</outbound-rule>
<rule>
<from>^/v/updateVersionNumberHere/(css|js|static|images)/(.*)$</from>
<to>/$1/$2</to>
</rule>
Run Code Online (Sandbox Code Playgroud)
解释:
当jsp提供给客户端时
当浏览器调用 js/css/static 文件时
要点:
| 归档时间: |
|
| 查看次数: |
3444 次 |
| 最近记录: |