2016-10-09 16 views
4

私はquickstartで説明されている標準のファイル構造を使用して作成された新しいangular2プロジェクトを用意しました。 APIゲートウェイを構築しようとしていますが、私のアプリケーションをspring-bootホストにしていますが、生成されたソースが作成されたプロジェクトで/ distディレクトリを使用するようにブートを設定できませんでした。プロジェクトの構造は次のとおりです。angular2 spring-bootプロジェクトの構造

project 
|--dist 
|--node_modules 
|--src 
| |--app 
| |--assets 
| |--main 
| | |--java 
| | |--resources 
| | | |--config 
| | |--webapp 
| | | |--WEB-INF 
私はまだUI上の継続的な発展のためにNPM/WebPACKのを使用できるように、デフォルトの/ distディレクトリを使用したい

私はそうのような静的リソースのディレクトリを設定してみました:

spring.resources.staticLocations: /dist 

しかし、これは動作していないようです。

私は、distディレクトリを直接指すようにリソースハンドラを作成:

@Configuration 
public class WebMvcConfiguration extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(final ResourceHandlerRegistry registry) { 

    String currentPath = new File("./").getAbsolutePath(); 
    currentPath = "file:///" + currentPath; 

    registry.addResourceHandler("/**").addResourceLocations(currentPath + "/dist/"); 
    } 
} 

これが問題の一部を解決していないが、今の私の根のURLは(「/」)はもはやのindex.htmlにマップされます。

/distプロジェクトディレクトリを見つけるためにspring-bootを設定する方が簡単ですか?私のプロジェクト構造は変わるべきですか?私は本当に一緒に一緒に働くこれらの作品のすべてを取得したいと思います。あなたはindex.htmlを下記好き置けばフォルダはSRC /メイン/リソース

を基準にしてい

/META-INF/resources/ 

/resources/ 

/static/ 

/public/ 

+0

クラスパスから直接ディスク上でヒットするのではなく、場所を使用する必要があります。 (結局のところ、瓶の中にはありません!)私は通常、JSパイプラインを 'target/classes'に出力するように設定します。 – chrylis

答えて

1

私は@chrylisアドバイスを取り、(のGradleを使用して)/ DISTを構築するためにWebPACKのビルドのために先ディレクトリを指摘しました。

生成されたソースを/resources/**に入れることは避けました。これは最終的には.warに組み込まれ、エンタープライズアプリケーションサーバーにデプロイされるためです。これをサポートするために、ビルドに多くのインクルード/ビルドディレクトリは、生成された.jsソースのためのより論理的な場所のようでした。

は私のプロジェクトの構造は次のようになります。私は今できるよ

spring.resources.static-locations: "file:./build/dist/" 

:私はWebMvcConfigurerAdapterを排除し、ビルドで私のdistディレクトリを指すように静的リソースを構成し

project 
|--build 
| |--dist 
| |--... 
|--node_modules 
|--src 
| |--app 
| |--assets 
| |--main 
| | |--java 
| | |--resources 
| | | |--config 
| | |--webapp 
| | | |--WEB-INF 

Webpack、Spring-Bootを実行するか、同じソースを使用し、設定オーバーヘッドはほとんどないアプリケーションサーバーにデプロイします。

2

春ブーツは、自動的に次のいずれかのディレクトリ内に配置された静的なWebリソースを 追加されます、スプリングはファイルなしで を提供することができます。

src/main/resources/META-INF/resources/index.html 

src/main/resources/resources/index.html 

src/main/resources/static/index.html 

src/main/resources/public/index.html 
関連する問題