亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot通過webjars實現管理靜態資源文件夾

發布時間:2020-11-02 15:48:58 來源:億速云 閱讀:144 作者:Leah 欄目:開發技術

本篇文章為大家展示了SpringBoot通過webjars實現管理靜態資源文件夾,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

WebMvcAutoConfiguration

添加資源映射:

public void addResourceHandlers(ResourceHandlerRegistry registry) {
      if (!this.resourceProperties.isAddMappings()) {
        logger.debug("Default resource handling disabled");
      } else {
        Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
        CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
        if (!registry.hasMappingForPattern("/webjars/**")) {
          this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{"/webjars/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/webjars/"}).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
        }

        String staticPathPattern = this.mvcProperties.getStaticPathPattern();
        if (!registry.hasMappingForPattern(staticPathPattern)) {
          this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{staticPathPattern}).addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
        }

      }
    }

所有"/webjars/**"路徑 , 都去類路徑下 classpath: /META-INF/resources/webjars/ 找資源,
所以就是

http://localhost:8080/webjars/jquery/3.5.1/jquery.js

能訪問

/META-INF/resources/webjars/jquery/3.5.1/jquery.js 路徑的文件

1) webjars: 以jar包的方式引入靜態資源

什么是webjar?

搜索webjar, 可以將jquery用pom引入:

SpringBoot通過webjars實現管理靜態資源文件夾

引入, 正好對應這個映射:

SpringBoot通過webjars實現管理靜態資源文件夾

結果是的:

SpringBoot通過webjars實現管理靜態資源文件夾

2) springboot對靜態資源的映射規則:

看代碼:

還是

WebMvcAutoConfiguration的這個方法

public void addResourceHandlers(ResourceHandlerRegistry registry) {
  if (!this.resourceProperties.isAddMappings()) {
    logger.debug("Default resource handling disabled");
  } else {
    Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
    CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
    if (!registry.hasMappingForPattern("/webjars/**")) {
      this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{"/webjars/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/webjars/"}).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
    }

    String staticPathPattern = this.mvcProperties.getStaticPathPattern();
    if (!registry.hasMappingForPattern(staticPathPattern)) {
      this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{staticPathPattern}).addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
    }
  }
}

進去:

WebMvcProperties

private String staticPathPattern;
  private final WebMvcProperties.Async async;
  private final WebMvcProperties.Servlet servlet;
  private final WebMvcProperties.View view;
  private final WebMvcProperties.Contentnegotiation contentnegotiation;
  private final WebMvcProperties.Pathmatch pathmatch;

  public WebMvcProperties() {
    this.localeResolver = WebMvcProperties.LocaleResolver.ACCEPT_HEADER;
    this.format = new WebMvcProperties.Format();
    this.dispatchTraceRequest = false;
    this.dispatchOptionsRequest = true;
    this.ignoreDefaultModelOnRedirect = true;
    this.publishRequestHandledEvents = true;
    this.throwExceptionIfNoHandlerFound = false;
    this.logResolvedException = false;
    this.staticPathPattern = "/**";
    this.async = new WebMvcProperties.Async();
    this.servlet = new WebMvcProperties.Servlet();
    this.view = new WebMvcProperties.View();
    this.contentnegotiation = new WebMvcProperties.Contentnegotiation();
    this.pathmatch = new WebMvcProperties.Pathmatch();
  }

addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())) 這里添加了資源的位置

public class ResourceProperties {
  private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};
  private String[] staticLocations;
  private boolean addMappings;
  private final ResourceProperties.Chain chain;
  private final ResourceProperties.Cache cache;

  public ResourceProperties() {
    this.staticLocations = CLASSPATH_RESOURCE_LOCATIONS;
    this.addMappings = true;
    this.chain = new ResourceProperties.Chain();
    this.cache = new ResourceProperties.Cache();
  }

"/**"訪問當前項目的任何資源, (靜態資源的文件夾) ,如果沒人處理,會默認去以下幾個文件路徑下找[/code]

復制代碼 代碼如下:
// 靜態資源文件夾, 這幾個都可以存放靜態資源:

classpath:/META-INF/resources/classpath:/resources/"classpath:/static/"classpath:/public/

例如 localhost:8080/a/b.js , 可以到 /META-INF/resources/a/b.js 找

SpringBoot通過webjars實現管理靜態資源文件夾

SpringBoot通過webjars實現管理靜態資源文件夾

或者:

/resources/a/b.js找:

SpringBoot通過webjars實現管理靜態資源文件夾

SpringBoot通過webjars實現管理靜態資源文件夾

或者類路徑下/static/a/b.js找:

SpringBoot通過webjars實現管理靜態資源文件夾

SpringBoot通過webjars實現管理靜態資源文件夾

或者/public/a/b.js下找

SpringBoot通過webjars實現管理靜態資源文件夾

SpringBoot通過webjars實現管理靜態資源文件夾

3)歡迎頁面: 靜態資源文件夾下的所有index.html頁面: 被 /**映射

http://localhost:8080/ 會到以上靜態資源文件夾中找index.html頁面

源碼有變化,我沒明白回頭再看

結果:

SpringBoot通過webjars實現管理靜態資源文件夾

路徑:

SpringBoot通過webjars實現管理靜態資源文件夾

上述內容就是SpringBoot通過webjars實現管理靜態資源文件夾,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南部县| 宁国市| 洪洞县| 博白县| 临夏县| 山东| 綦江县| 平邑县| 新干县| 清水河县| 拜泉县| 左贡县| 溧阳市| 赤水市| 连城县| 琼结县| 西藏| 揭阳市| 桓仁| 永济市| 湖州市| 永福县| 镇远县| 无极县| 固阳县| 黑山县| 慈溪市| 连城县| 东至县| 孟州市| 昌乐县| 峨眉山市| 永昌县| 尉氏县| 江山市| 乌鲁木齐市| 石嘴山市| 盐边县| 高雄县| 宁海县| 宁明县|