Empreinte digitale et optimiser les ressources Web.
Ce plugin effectue plusieurs optimisations:
Au cours de ce processus, le plugin calcule la somme de chèques de fichiers et le prépare au nom du fichier. Tous les liens vers ce nom de fichier seront modifiés en version empreinte digitale. Le fichier d'origine sera supprimé. Empreinte digitale utilisée pour améliorer la mise en cache des ressources Web. Si la somme de contrôle des fichiers n'est pas modifiée, le nom sera le même et il est sûr d'ajouter un en-tête Max Expires. Une fois le contenu du fichier modifié, la somme de contrôle sera également modifiée. Ce plugin filtre (récursivly) le répertoire source, détecte toutes les ressources en utilisant les modèles ci-dessous et copiez le résultat (si nécessaire) dans le répertoire cible.
Les modèles suivants sont utilisés pour détecter les ressources éligibles à l'empreinte digitale:
<link[^>]+href=["'](.*?)["'][^>]*>["']([^s]*?.js)["']<img[^>]+src=["'](.*?)["'][^>]+>url(s*["']?(.*?)["']?s*)<c:url[^>]+value="(.*?)"[^>]+>Après les empreintes digitales, il est sûr d'ajouter un en-tête Max expire.
Exigences
<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"Pendant la minification HTML:
pre .type="text" sera supprimé des balises input car son type par défaut. < 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;
}