2017-03-27 60 views
2

Spring Boot或Tomcat在開發環境中緩存我的靜態資產.js和.css文件,並且我必須Build - > Build Project(在IntelliJ中)每次獲得刷新版本。Spring Boot或Tomcat緩存靜態資產,必須重新構建每次刷新

我試過這些應用程序屬性,它們沒有工作。

spring.resources.cache-period=0 
spring.resources.chain.cache=false 
spring.resources.chain.html-application-cache=false 
spring.resources.chain.strategy.content.enabled=false 
spring.resources.chain.strategy.content.paths=/** 

我想有這個bean配置Tomcat和它沒有工作,以及:

@Bean 
    public EmbeddedServletContainerFactory servletContainer() { 
     TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory() { 

      @Override 
      protected void postProcessContext(Context context) { 
       final int cacheSize = 0; 
       StandardRoot standardRoot = new StandardRoot(context); 
       standardRoot.setCachingAllowed(false); 
       standardRoot.setCacheMaxSize(cacheSize); 
       context.setResources(standardRoot);  
      } 
     }; 
     return tomcatFactory; 
    } 

當改變我不想做構建項目每次js和css文件,我甚至可以使用BrowserSync之類的功能自動將更改應用到網頁上,但爲此我需要Tomcat/Spring在開發環境中爲靜態資源提供服務,而無需點擊Build Project。

該文檔並沒有真正的幫助,根據該文檔,除了單擊每次更改css或js文件時單擊構建都沒有辦法。 http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-hotswapping

但我相信這應該是非常簡單的事情,完全可以實現的不是它。

任何想法接下來我應該嘗試什麼?

謝謝

回答

2

這在沒有緩存。當您在單獨的文件夾(例如target)中構建項目時,會複製源文件(*.js*.css),然後將它們發送到瀏覽器。 Build Project按鈕複製這些文件,然後你看到他們已經改變。

您可以在IntelliJ中啓用Build project automatically選項,或在更改後使用其他工具(例如bower)複製文件。

+0

非常感謝你,IntelliJ Idea註冊表設置工作!應該在...之前考慮過目標/文件夾乾杯! – Seregwethrin

相關問題