<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
        博客園  :: 首頁(yè)  :: 新隨筆  :: 聯(lián)系 :: 訂閱 訂閱  :: 管理

      作用:在html中,給引用的js文件動(dòng)態(tài)添加版本號(hào),可以去掉js緩存,保證使用的js始終是最新的js 。這次方案是使用自定義標(biāo)簽完成。
      不讓頁(yè)面緩存這些文件方法其實(shí)很多,但我們經(jīng)常用的就這幾樣,這里我用到的是在資源后面加版本號(hào)來(lái)實(shí)現(xiàn)資源不緩存的功能,具體代碼如下

      package com.nglee.house.config.custom;
      
      import org.springframework.stereotype.Component;
      import org.thymeleaf.dialect.AbstractProcessorDialect;
      import org.thymeleaf.processor.IProcessor;
      import org.thymeleaf.standard.StandardDialect;
      
      import java.util.HashSet;
      import java.util.Set;
      
      /**
       * @author ngLee
       * @version 1.0
       * @Desc
       * @date 2021/4/19 21:32
       */
      @Component
      public class CustomTag extends AbstractProcessorDialect {
          /**
           * 定義方言名稱(chēng)
           */
          private static final String NAME = "系統(tǒng)自定義標(biāo)簽";
          private static final String prefix = "Ngl";
          protected CustomTag() {
              super(NAME, prefix, StandardDialect.PROCESSOR_PRECEDENCE);
          }
          
          @Override
          public Set<IProcessor> getProcessors(final String dialectPrefix) {
              final Set<IProcessor> processor = new HashSet<>();
              //<Fw:select>標(biāo)簽
              processor.add(new CustomTagSelect(prefix));
              return processor;
          }
      }
      
      package com.nglee.house.config.custom;
      
      import org.thymeleaf.context.ITemplateContext;
      import org.thymeleaf.model.IModel;
      import org.thymeleaf.model.IModelFactory;
      import org.thymeleaf.model.IProcessableElementTag;
      import org.thymeleaf.processor.element.AbstractElementTagProcessor;
      import org.thymeleaf.processor.element.IElementTagStructureHandler;
      
      import org.thymeleaf.templatemode.TemplateMode;
      
      import java.time.Instant;
      
      /**
       * @author ngLee
       * @version 1.0
       * @Desc
       * @date 2021/4/19 21:40
       */
      public class CustomTagSelect extends AbstractElementTagProcessor {
          
          @Override
          protected void doProcess(ITemplateContext iTemplateContext, IProcessableElementTag iProcessableElementTag, IElementTagStructureHandler iElementTagStructureHandler) {
                  //獲取src的引用js路徑
                  String src = iProcessableElementTag.getAttributeValue("src");
                  //如果t能加上發(fā)包版本號(hào)更完美
                  //拼接替換后的內(nèi)容
                  StringBuffer content = new StringBuffer("<script type='text/javascript' src="+src+"?t="+Instant.now().getEpochSecond() +"></script>");
                  IModelFactory modelFactory = iTemplateContext.getModelFactory();
                  IModel model = modelFactory.createModel();
                  model.add(modelFactory.createText(content));
                  iElementTagStructureHandler.replaceWith(model, false);
          }
          private static final String TAG_NAME="script";
          private static final int PRECEDENCE = 10000;
          public CustomTagSelect(String dialectPrefix) {
              super(
                      // 模板類(lèi)型為HTML
                      TemplateMode.HTML,
                      // 標(biāo)簽方言前綴
                      dialectPrefix,
                      // 標(biāo)簽名稱(chēng)
                      TAG_NAME,
                      // 將標(biāo)簽前綴應(yīng)用于標(biāo)簽名稱(chēng)
                      true,
                      // 無(wú)屬性名稱(chēng):將通過(guò)標(biāo)簽名稱(chēng)匹配
                      null,
                      // 沒(méi)有要應(yīng)用于屬性名稱(chēng)的前綴
                      false,
                      // 優(yōu)先級(jí)
                      PRECEDENCE
              );
          }
      }
      
      

      具體使用:

      <Ngl:script th:src="@{'/static/js/user/register.js'}" id="s"></Ngl:script>
      

      具體引用效果為:

      主站蜘蛛池模板: 免费乱理伦片在线观看| 国产精品视频午夜福利| 国产熟女一区二区五月婷| 日韩放荡少妇无码视频| 木兰县| 成人久久精品国产亚洲av| 亚洲一区二区精品偷拍| 亚洲精品成人一二三专区| 精品中文人妻在线不卡| 九九热精品免费视频| 亚洲色大成网站WWW永久麻豆| 国产精品久久人妻无码网站一区| 国产精品毛片在线看不卡| 国内精品自线在拍| 衣服被扒开强摸双乳18禁网站| 最新午夜男女福利片视频| 亚洲av色香蕉一区二区三区精品| 国产老头多毛Gay老年男| 亚洲av高清一区二区三| 日韩亚洲国产综合高清| 国产精品av中文字幕| 蜜臀一区二区三区精品免费 | 亚洲精品久久久久国色天香| 日韩中文字幕亚洲精品一| 中国CHINA体内裑精亚洲日本| 亚洲综合色成在线播放| 亚洲综合黄色的在线观看| 国产亚洲精品超碰热| 性虎精品无码AV导航| 少妇人妻偷人精品视频| 绝顶丰满少妇av无码| 国产蜜臀一区二区三区四区| 亚洲欧美激情在线一区| 亚洲国产美女精品久久久| 国产美女深夜福利在线一| 67194熟妇在线直接进入| 日韩人妻一区中文字幕| 亚洲国产在一区二区三区| 午夜福利精品国产二区| 老妇肥熟凸凹丰满刺激| 日本在线 | 中文|