ลายนิ้วมือและเพิ่มประสิทธิภาพทรัพยากรเว็บ
ปลั๊กอินนี้ดำเนินการเพิ่มประสิทธิภาพหลายอย่าง:
ในระหว่างกระบวนการนี้ปลั๊กอินจะคำนวณการตรวจสอบไฟล์และเตรียมไว้ล่วงหน้าไปยังชื่อไฟล์ ลิงก์ทั้งหมดไปยังชื่อไฟล์นี้จะถูกเปลี่ยนเป็นเวอร์ชันลายนิ้วมือ ไฟล์ต้นฉบับจะถูกลบ ลายนิ้วมือที่ใช้ในการปรับปรุงการแคชทรัพยากรเว็บ หากการตรวจสอบไฟล์ไม่เปลี่ยนแปลงชื่อจะเหมือนกันและปลอดภัยที่จะเพิ่มส่วนหัว Max Expires เมื่อเนื้อหาของไฟล์มีการเปลี่ยนแปลงการตรวจสอบจะมีการเปลี่ยนแปลงเช่นกัน ปลั๊กอินนี้จะกรองไดเรกทอรีต้นฉบับ (ซ้ำ) ตรวจจับทรัพยากรใด ๆ โดยใช้รูปแบบด้านล่างและคัดลอกผลลัพธ์ (ถ้าจำเป็น) ไปยังไดเรกทอรีเป้าหมาย
รูปแบบต่อไปนี้ใช้เพื่อตรวจจับทรัพยากรที่มีสิทธิ์ได้รับลายนิ้วมือ:
<link[^>]+href=["'](.*?)["'][^>]*>["']([^s]*?.js)["']<img[^>]+src=["'](.*?)["'][^>]+>url(s*["']?(.*?)["']?s*)<c:url[^>]+value="(.*?)"[^>]+>หลังจากการพิมพ์ลายนิ้วมือมันปลอดภัยที่จะเพิ่มส่วนหัวสูงสุดหมดอายุ
ความต้องการ
<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 minification:
pretype="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;
}