2015-12-10 57 views
0

我有一個關於Spring啓動的問題。我想提供靜態內容,我已在我配置的ResourceHandler從Spring啓動靜態內容會導致404白標籤錯誤頁面

@Configuration 
public class WebApplicationConfig extends WebMvcConfigurerAdapter { 

    private static final Logger LOG = LoggerFactory.getLogger(WebApplicationConfig.class); 

    @Bean 
    public FileSystem fileSystem() { 
     FileSystem fileSystem = new LocalFileSystem(); 
     return fileSystem; 
    } 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     LOG.info("Serving static content from " + fileSystem().getBaseFolder()); 
     registry.addResourceHandler("/static/storage/**").addResourceLocations("file:///" + fileSystem().getBaseFolder()); 
     super.addResourceHandlers(registry); 
    } 

} 

我的應用程序運行在一個泊塢窗容器中,我安裝在主機的音量/ MyApplication的/存儲。當我進入我的Docker容器時,我看到這個卷存在並且反映了fileSystem().getBaseFolder()-調用。這個目錄也是可寫的,但它在我的項目之外。

的LOG語句執行: "Serving static content from /myapplication/storage",所以我知道正在執行,以及該代碼。

,可以是相關的更多信息:

  • 這是一個Linux環境。
  • 寫入權限對於該文件夾是正確的。
  • 文件夾存在且可寫且可讀。
  • 我有幾個@RestController的註釋。其中的所有方法都以@RequestMapping("/api/")開頭,因此沒有以/ static開頭的映射。
  • 已經從文件前面的///中刪除,但沒有任何影響。

有誰知道我該如何使那些文件夾中的文件可讀。它總是返回404.該文件夾必須在項目之外,因此不要建議將它放入/resources/static

任何幫助表示讚賞。

+0

嘗試從'file:///'中刪除額外的斜線? – chrylis

+0

哦,我忘了提及,我已經嘗試過,沒有效果。我會更新我的帖子。 –

回答

0

好的,我犯了一個初學者的錯誤。由於@chrylis在評論中提到,我在file:之前刪除了///。我做了一些測試運行,看起來,我在我的application.propertiesmyapplication.picture.basefolder=/myapplication/storage中有以下條目。它錯過了一個尾隨的斜線。所以我更新到myapplication.picture.basefolder=/myapplication/storage/,我的問題已修復。

相關問題