背景:前端VUE項目,歷史原因部署在Tomcat服務器。
項目打包js文件,css文件均有做hash或時間戳。
當更新前端代碼時,原有連接再次打開時會出現白屏現象,查看控制台js文件加載失敗。
初步判斷是html被緩存了,導致js無法正常加載。
解決方案:
Apache Tomcat 10 Configuration Reference (10.0.27) - Container Provided Filterst
Tomcat 安裝目錄下web.xml增加如下配置:
<filter>
<filter-name>ExpiresFilter</filter-name>
<filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
<init-param>
<param-name>ExpiresByType text/html</param-name>
<param-value>access plus 1 second</param-value>
</init-param>
</filter>
<!-- ==================== Built In Filter Mappings ====================== -->
<filter-mapping>
<filter-name>ExpiresFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
各個版本Tomcat類似,注意時間單位的單複數。如果是1秒,1second,10秒,10seconds.