Fingerabdruck und Optimieren Sie die Webressourcen.
Dieses Plugin führt mehrere Optimierungen durch:
Während dieses Prozesses berechnet Plugin die Dateiüberprüfungssumme und stellt sie auf den Dateinamen vor. Alle Links zu diesem Dateinamen werden in die Fingerabdruckversion geändert. Die Originaldatei wird gelöscht. Fingerabdruck verwendet zur Verbesserung der Webressourcen zwischen den Webressourcen. Wenn die Dateiprüfungssumme nicht geändert wird, ist der Name gleich und es ist sicher, maximal auszufügen. Sobald die Dateiinhalte geändert wurden, wird auch die Prüfsumme geändert. Dieses Plugin filtert (rekursiv) Quellverzeichnis, erkennt alle Ressourcen mithilfe der folgenden Muster und kopiert das Ergebnis (falls erforderlich) in das Zielverzeichnis.
Die folgenden Muster werden verwendet, um Ressourcen zu erkennen, die für das Fingerabdruck in Frage kommen:
<link[^>]+href=["'](.*?)["'][^>]*>["']([^s]*?.js)["']<img[^>]+src=["'](.*?)["'][^>]+>url(s*["']?(.*?)["']?s*)<c:url[^>]+value="(.*?)"[^>]+>Nach dem Fingerabdruck ist es sicher, maximal auszuläuft.
Anforderungen
<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"Während der HTML -Minifikation:
pre .type="text" wird aus input -Tags entfernt, da es sich um Standardtyp handelt. < 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;
}