2016-08-16 6 views
0

私は唯一の違いは、コンテンツネゴシエーションに基づくべきである/コンテンツネゴシエーションで静的コンテンツとスプリングデータをどのように提供できますか?

curl http://localhost:8080                                  slave-vi 
<!DOCTYPE html><html><head><title>RPF</title><meta name="viewport" content="width=device-width,initial-scale=1"><base href="/"><link href="styles.css" rel="stylesheet"></head><body aurelia-app="main"><div class="splash"><div class="message">RPF</div><i class="fa fa-spinner fa-spin"></i></div><script type="text/javascript" src="aurelia-bootstrap.3c6271fc099630981613.bundle.js"></script><script type="text/javascript" src="aurelia.042f8d07b45053bfe6a6.bundle.js"></script><script type="text/javascript" src="app.86af2df503886ba0a486.bundle.js"></script></body></html> 

に静的コンテンツと、ばねデータ、残りの両方をホストしたい

ブラウザ Acceptヘッダが(彼らは」もしそうなら
curl -H "Accept: application/json" http://localhost:8080                         slave-vi 
{ 
    "_links" : { 
    "users" : { 
     "href" : "http://localhost:8080/users{?page,size,sort}", 
     "templated" : true 
    }, 
    "profile" : { 
     "href" : "http://localhost:8080/profile" 
    } 
    } 
} 

私はindex.htmlを取得しますが、application/jsonまたは他の特定のコンテンツヘッダーが送信された場合、そのタイプまたはサポートされるかどうかに応じて415を取得します。

現在、私はあなたがコントローラが/上のすべての要求をリッスンし、いくつかの条件に基づいてそれらを転送する可能性があり、コマンドライン-Dspring.resources.staticLocations=...

答えて

0

にこれを追加することにより、静的ロケーションを設定します。

@RequestMapping("/") 
public String handleIndexPage(@RequestHeader(value="Accept") String acceptValue) { 
    if (MediaType.APPLICATION_JSON_VALUE.equals(acceptValue)) { 
     return "forward:/spring-data-rest-url"; 
    } else { 
     return "forward:/other-url"; 
    } 
} 
+0

可能。私はこれを忘れていましたが、有効なバグhttps://github.com/spring-projects/spring-boot/issues/6668に合格しました。 – xenoterracide

関連する問題