Spring MVC 靜態(tài)資源

2020-07-30 18:07 更新

此選項提供了一種從基于資源的位置列表中提供靜態(tài)資源的便捷方法。

在下一個示例中,給定一個以 開頭的請求,相關(guān)路徑用于查找和提供相對于 Web 應(yīng)用程序根下的靜態(tài)資源或 下的類路徑。資源在將來一年到期時提供,以確保瀏覽器緩存的最大使用量和瀏覽器提出的 HTTP 請求的減少。還計算標頭,如果存在,則返回狀態(tài)代碼。/resources/public/staticLast-Modified304

以下列表顯示了如何使用 Java 配置實現(xiàn):

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**")
            .addResourceLocations("/public", "classpath:/static/")
            .setCachePeriod(31556926);
    }
}

下面的示例演示如何在 XML 中實現(xiàn)相同的配置:

<mvc:resources mapping="/resources/**" location="/public/">
    <mvc:resource-chain resource-cache="true">
        <mvc:resolvers>
            <mvc:version-resolver>
                <mvc:content-version-strategy patterns="/**"/>
            </mvc:version-resolver>
        </mvc:resolvers>
    </mvc:resource-chain>
</mvc:resources>

然后,您可以使用 重寫 URL 并應(yīng)用解析器和變壓器,例如插入版本。MVC 配置提供 bean,以便可以注入其他 bean。您還可以使用for-Thymeleaf、jsp、FreeMarker和其他使用URL標記的

ResourceUrlProviderResourceUrlProviderResourceUrlEncodingFilterHttpServletResponse#encodeURL

請注意,在同時使用這兩種資源(例如,用于提供 gzipped 或 Brotli 編碼的資源) 時,必須按此順序注冊它們。這確保了基于內(nèi)容的版本總是可靠地計算,基于未編碼的文件EncodedResourceResolverVersionResourceResolver

Webjar也通過支持,當庫出現(xiàn)在類路徑上時,它會自動注冊。解析器可以重寫url以包含jar的版本,也可以與沒有版本?-?的傳入url相匹配,例如:

WebJarsResourceResolverorg.webjars:webjars-locator-core/jquery/jquery.min.js/jquery/1.2.0/jquery.min.js


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號