fingerprint maven plugin
1.0.0
지문 및 웹 리소스를 최적화합니다.
이 플러그인은 몇 가지 최적화를 수행합니다.
이 과정에서 플러그인은 파일 체크섬을 계산하고 파일 이름으로 전제합니다. 이 파일 이름에 대한 모든 링크는 지문 버전으로 변경됩니다. 원본 파일이 삭제됩니다. 웹 리소스 캐싱을 개선하는 데 사용되는 지문. 파일 체크섬이 변경되지 않으면 이름이 동일하며 Max가 만료 된 헤더를 추가하는 것이 안전합니다. 파일 내용이 변경되면 체크섬도 변경됩니다. 이 플러그인은 소스 디렉토리 (재귀 적으로) 소스 디렉토리를 필터링하고 아래 패턴을 사용하여 모든 리소스를 감지하고 결과 (필요한 경우) 대상 디렉토리에 복사 결과를 복사합니다.
다음 패턴은 지문에 적합한 리소스를 감지하는 데 사용됩니다.
<link[^>]+href=["'](.*?)["'][^>]*>["']([^s]*?.js)["']<img[^>]+src=["'](.*?)["'][^>]+>url(s*["']?(.*?)["']?s*)<c:url[^>]+value="(.*?)"[^>]+>지문 후 Max를 추가하는 것이 안전합니다.
요구 사항
<img src="/img/test.png"><img src="test.png"><img src="${pageContext.request.contextPath}/img/test.png"><img src="${ pageContext.request.contextPath }/test.png"><img src="/img/test.png"><img src="<c:if test="${var}">/img/test.png</c:if>"<img src="${seome.variable}/img/test.png"HTML 미니 화 중에 :
pre 제외하고.type="text" 기본 유형이므로 input 태그에서 제거됩니다. < plugin >
< groupId >com.aerse.maven</ groupId >
< artifactId >fingerprint-maven-plugin</ artifactId >
< version >3.6</ version >
< executions >
< execution >
< phase >package</ phase >
< goals >
< goal >generate</ goal >
</ goals >
</ execution >
</ executions >
< configuration >
< excludeResources >
< excludeResource >://</ excludeResource >
< excludeResource >//</ excludeResource >
< excludeResource >data:</ excludeResource >
</ excludeResources >
<!-- ${basedir}/src/main/webapp by default -->
< sourceDirectory >${basedir}/target/webcombined</ sourceDirectory >
<!-- ${project.build.directory}/optimized-webapp by default -->
< targetDirectory >${basedir}/target/optimized-webapp</ targetDirectory >
<!-- Optional: set to 'false' to disable minification of HTML, JS and/or CSS. -->
< minifyHtml >true</ minifyHtml >
< minifyJs >true</ minifyJs >
< minifyCss >true</ minifyCss >
<!-- Remove unnecessary spaces between tags. Make single line page. Takes into consideration <pre> tags -->
< htmlExtensions >
< htmlExtension >html</ htmlExtension >
< htmlExtension >jsp</ htmlExtension >
< htmlExtension >tag</ htmlExtension >
</ htmlExtensions >
< extensionsToFilter >
< extensionToFilter >html</ extensionToFilter >
< extensionToFilter >jsp</ extensionToFilter >
< extensionToFilter >tag</ extensionToFilter >
< extensionToFilter >css</ extensionToFilter >
< extensionToFilter >js</ extensionToFilter >
</ extensionsToFilter >
<!-- cdn host. Not required. For example using "//accountname.r.worldssl.net": /css/bootstrap.css -> //accountname.r.worldssl.net/css/<md5>bootstrap.css -->
< cdn >${cdn}</ cdn >
<!-- fingerprinted filename. Could be [name].[ext]?hash=[hash] -->
< namePattern >[hash][name].[ext]</ namePattern >
</ configuration >
</ plugin > location ~ ^/.+.(ico|jpg|jpeg|gif|pdf|jar|png|js|css|txt|epf|ttf|svg|woff)$ {
root < your root content>;
expires max;
add_header Cache-Control public;
}