2016-01-27 193 views
0

我在春季啓動應用程序工作。我試圖用spring來提供靜態內容。 想爲存儲在/ C的資源:每當一個請求進來的URL /前端/文件/目錄匹配模式:/文件/ **:春季引導服務靜態資源

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 

    registry 
      .addResourceHandler("/file/**") 
      .addResourceLocations("file:///C:/frontend/files/"); 

} 

,但是當我嘗試進入這種資源使用這個網址:http://localhost:9999/file/app.min.js

我有這個問題

There was an unexpected error (type=Not Acceptable, status=406). 
Could not find acceptable representation 
+0

您可以爲請求和響應添加curl請求+標頭嗎? – fateddy

回答

1

這聽起來像你的項目的文件夾結構是錯誤的。

代碼應該在src/main/java之下,資源(比如你的javascript)應該在src/main/resources之下。您可以通過幾種不同的選項來實際提供文件。 This post在spring.io博客有以下說:

春天開機就會自動加上位於內的任何以下目錄的靜態Web資源:

  • /META-INF/resources/
  • /resources/
  • /static/
  • /public/

您還有另一種選擇是使用webjars

就我個人而言,我發現將這些文件放在src/main/resources/public下是最容易的。它總是對我沒有任何問題。有趣的是,您可以在項目中的任何位置放置一個名爲/public的文件夾,並且spring-boot將爲其提供文件。你必須非常小心,它在src/main/resources/public之下,不過如果你使用像maven這樣的構建工具,就像你開始構建.jar一樣,否則文件將不在正確的位置。

+0

是的,具有靜態內容的文件夾應位於類路徑或部署Web應用程序的目錄下。因此,一種方法是將靜態文件夾放在src/main/resource下,然後Maven將幫助將它構建到類路徑中。 – Hong

2

我解決了這個問題。它與「spring-cloud-config-server」有關。我只是刪除這個配置:org.springframework.cloud spring-cloud-config-server