2016-07-01 7 views
1

私は、複数のMavenモジュールを使ってさまざまな境界のあるコンテキストを処理するソリューションを開発しています。Springブートによってjarファイル内の静的リソースを提供する

スプリングブートのおかげで、各モジュールは自分自身の残りのAPIと、@SpringBootApplicationで注釈付けされたクラスを持つ1つのMavenモジュールでホストされているすべてのモジュールを公開します。単純化プロジェクト構造がある は、次のようになります。レイアウト、静的リソースおよびその間に、 htmlページを保つ一つの場所:複合UIに直面したとき、私は同じパターンを使用しようとした

parent 
|-- pom.xml 
|-- ... 
|-- host 
    |-- Application.java  
    |-- resources 
    |-- index.html 
|-- driver 
    |-- api  
    |-- resources 
    |-- register.html 
|-- notify 
    |-- ... 
|-- passenger 
    |-- ... 

それをメンバモジュールに保持している各境界付きコンテキストに属します。

問題は、私が春のブートのドキュメントで見つけたように、他のjarファイルから静的リソースを提供する方法がないことです。

この機能を使用するには、解決策はありますか、ここではアーキテクチャ上の間違いがありますか?またはバネの外側にあるもの(オーバーレイなど)が解決策ですか?

+0

を参照してください。 JARファイルでは静的リソースとして処理する必要があります。それに問題がある場合は、エラーを指定してください。 – dunni

+0

「host」モジュールの下にあるすべての静的ファイルがindex.htmlを好きにしていますか?彼らはすでに正しい道にあり、春まで奉仕しています。しかし、別のMavenモジュールにあり、別個のJARファイルとしてパッケージ化されているregister.htmlはどうでしょうか。 – nsafari

+1

ファイル "register.html"がJARのフォルダ "static"にある場合、静的リソースとして認識され、Springによって提供されます。動作しない場合は、設定とログファイルに関する詳細情報を投稿するかもしれません。 – dunni

答えて

3

WebMvcConfigurerAdapterを拡張し、addResourceHandlers

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/static/**") 
      .addResourceLocations("classpath:/static/"); 
} 

をオーバーライドするには、あなたが「/静的のsrc /メイン/リソース」パスに静的ファイルを置くと、彼らは「静的」フォルダ内にパッケージ化されなければならないspring-boot-app-does-not-serve-static-resources-after-packaging-into-jar

関連する問題