2015-06-21 81 views
3

背景添加外部靜態文件(CSS,JS,PNG ...)


我有一個春季啓動應用,它有logo.png文件添加到的的static文件夾資源文件,該文件最終被構建到用於執行的jar文件中。

這個jar應用程序需要在多個實例中針對不同的客戶端運行。所以我做的是創建一個外部application.properties文件,它區分每個用戶的設置。 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

問題


但問題是,我需要改變我的應用程序的每個實例的標誌。我無法將客戶徽標嵌入到我的應用程序jar中。相反,我需要保持它像我的application.properties外部。

就目前而言,我所做的是爲您在執行的jar同一文件夾中的文件logo.png,如果excist,閱讀文件,得到的base64數據並顯示在img標籤。

但我希望這是作爲靜態內容以適當的方式完成的。我需要將靜態內容外化。 所以我可以讓每個客戶都有一個具有不同靜態資源內容的jar的特定實例

例如,我需要保留下面的外部靜態文件,並從我的視圖hrefsrc html標籤的屬性中訪問。

摘要


所需的文件夾結構

+ runtime 
    - myapp-0.1.0.jar 
    - application.properties 
    + static 
    - logo.png 

應該能夠訪問

<img th:src="@{/logo.png}" /> 

回答

4

您可以使用資源處理程序來提供外部文件 - 例如

@Component 
class WebConfigurer extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/ext/**").addResourceLocations("file:///yourPath/static/"); 
    } 

} 
+0

它的工作原理:)謝謝 –