欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot靜態(tài)資源CSS等修改后再運行無效的解決

 更新時間:2021年12月15日 14:53:08   作者:學(xué)而不思則忘  
這篇文章主要介紹了SpringBoot靜態(tài)資源CSS等修改后再運行無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot靜態(tài)資源CSS等修改后再運行無效問題

問題背景

在美化網(wǎng)頁過程中,修改好CSS后在本地已經(jīng)可以顯示出我想要的效果了。于是就把修改好后的css加載到springboot中運行,結(jié)果問題出現(xiàn)了:我修改后的css樣式始終不能加載!打開F12看到css樣式成功的被請求,然后再進一步點進去看css文件,發(fā)現(xiàn)我修改的部分并沒有加載,現(xiàn)在用的css還是我修改以前的css。這里我注意到一個細節(jié),然后才明白是怎么回事

在這里插入圖片描述

原來spring boot會把靜態(tài)文件緩存到瀏覽器本地。但這樣就造成了一個問題:如果服務(wù)器靜態(tài)文件修改,瀏覽器端在未過期之前是不會重新加載文件的。此時需要通過版本號來控制。spring boot版本號支持兩種,一種是文件md5,另一種是固定版本號。我采用的是md5方式,spring boot啟動時會計算每個靜態(tài)文件的md5值并緩存,瀏覽器訪問時每個靜態(tài)文件后綴前加上md5值作為版本號,如果服務(wù)器md5值改變則瀏覽器重新加載。(需要重啟應(yīng)用才會重新生成md5)

下面來設(shè)置md5方式

1、先設(shè)置文件配置application.properties

# 資源緩存時間,單位秒
spring.resources.cache.period=604800
# 開啟gzip壓縮
spring.resources.chain.compressed=true
# 啟用緩存
spring.resources.chain.cache=true
# 使用MD5版本號
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

2、添加靜態(tài)資源控制類,使用ResourceUrlProvider

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.servlet.resource.ResourceUrlProvider;
/**
 *  使用ResourceUrlProvider進行版本管理
 *  并避免在版本發(fā)生改變時,由于瀏覽器緩存而產(chǎn)生資源版本未改變的錯誤
 */
@ControllerAdvice
public class ControllerConfig {
    @Autowired
    private ResourceUrlProvider resourceUrlProvider;
    @ModelAttribute("urls")
    public ResourceUrlProvider urls() {
        return this.resourceUrlProvider;
    }
}

3、在網(wǎng)頁中引用靜態(tài)文件

注意:如果使用的thymeleaf模板引擎的話,那么需要這么進行編寫:

<link rel="stylesheet" th:href="${urls.getForLookupPath('/css/font.css')}" rel="external nofollow" >
<link rel="stylesheet" th:href="${urls.getForLookupPath('/css/xadmin.css')}" rel="external nofollow" >
<script th:src="${urls.getForLookupPath('/lib/layui/layui.js')}" charset="utf-8"></script>
<script type="text/javascript" th:src="${urls.getForLookupPath('/js/xadmin.js')}"></script>

SpringBoot開發(fā)中的一些小坑—CSS失效

Springboot版本1.5.17

結(jié)合thymeleaf,在項目中引用CSS文件的問題

	    <parent>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-parent</artifactId>
	        <version>1.5.17.RELEASE</version>
	        <relativePath/> <!-- lookup parent from repository -->
	    </parent>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
<!DOCTYPE html >
<html  lang="zh-CN" xmlns:th="http://www.thymeleaf.org" >
<head>
    <meta charset="UTF-8" />
    <title>0.0</title>
    <link  rel="stylesheet" type="text/css"  href="../static/css/index.css" rel="external nofollow"  rel="external nofollow" >
</head>

首先配置的CSS引用是這樣,href后面跟上從static文件后的完整路徑,打開靜態(tài)網(wǎng)頁就是有css效果了

demo.CSS載入

沒有加載成功是這樣的

在這里插入圖片描述

但是問題來了,還有種說法是這樣加:

<link  rel="stylesheet" type="text/css"  href="../static/css/index.css" rel="external nofollow"  rel="external nofollow"  th:href="@{/css/index.css}" rel="external nofollow" >

而在靜態(tài)網(wǎng)頁中,你看到的,始終是帶上了CSS樣式的結(jié)果,但Springboot項目運行起來后,你會發(fā)現(xiàn)CSS加載失效了,所以如果是Springboot項目,一定要加上后面的路徑th:href=""。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java解決動態(tài)配置字段需求問題

    java解決動態(tài)配置字段需求問題

    這篇文章主要介紹了java解決動態(tài)配置字段需求問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python機器學(xué)習(xí)三大件之二pandas

    Python機器學(xué)習(xí)三大件之二pandas

    這篇文章主要介紹了Python機器學(xué)習(xí)三大件之二pandas,文中有非常詳細的代碼示例,對正在學(xué)習(xí)Python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • java反編譯工具Bytecode-Viewer分享

    java反編譯工具Bytecode-Viewer分享

    這篇文章主要介紹了java反編譯工具Bytecode-Viewer分享,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Selenium Webdriver實現(xiàn)截圖功能的示例

    Selenium Webdriver實現(xiàn)截圖功能的示例

    今天小編就為大家分享一篇Selenium Webdriver實現(xiàn)截圖功能的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Spring boot基于ScheduledFuture實現(xiàn)定時任務(wù)

    Spring boot基于ScheduledFuture實現(xiàn)定時任務(wù)

    這篇文章主要介紹了Spring boot基于ScheduledFuture實現(xiàn)定時任務(wù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Mybatis-plus批量去重插入ON DUPLICATE key update使用方式

    Mybatis-plus批量去重插入ON DUPLICATE key update使用方式

    這篇文章主要介紹了Mybatis-plus批量去重插入ON DUPLICATE key update使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 淺談Java 將圖片打包到j(luò)ar中的路徑問題

    淺談Java 將圖片打包到j(luò)ar中的路徑問題

    下面小編就為大家分享一篇淺談Java 將圖片打包到j(luò)ar中的路徑問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Spring?Framework六種常見設(shè)計模式

    Spring?Framework六種常見設(shè)計模式

    設(shè)計模式是軟件開發(fā)的重要組成部分,本文借助spring來講解這個框架的設(shè)計模式,通過本文我們探討了spring如何利用這些模式來提供這些豐富的功能,對本文感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • Mybatis參數(shù)傳遞示例代碼

    Mybatis參數(shù)傳遞示例代碼

    這篇文章主要給大家介紹了關(guān)于Mybatis參數(shù)傳遞的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Maven 打包項目到私服 (deploy)的配置方法

    Maven 打包項目到私服 (deploy)的配置方法

    這篇文章主要介紹了Maven 打包項目到私服 (deploy)的配置方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論