ideまたはコマンドラインから起動したときに完全に正常に動作するアプリケーションがあります:mvn spring-boot:run。しかし、私はそれをjarファイルにパッケージ化すると、静的リソース(404が見つかりません)にアクセスすることができません。静的ファイルをリソース・ファウラーに保管したくないので、静的ファイルを変更する必要があるたびにサーバーをリロードする必要はありません。だから私は、私のpom.xmlにこのプラグインを使用:jarにパッケージングした後にSpringブートアプリケーションが静的リソースを処理しない
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/static</outputDirectory>
<resources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
私はファイルが2つのディレクトリ「静的」にコピーされていることがわかります。 これは、リソースハンドラの私の設定です:
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
コントローラRequestMappingsが正常に動作している、問題は静的リソースのみです。
Bootの場合、resourcesディレクトリの 'static'や' public'ディレクトリにリソースを置き、BootのデフォルトMVC設定が登録を処理するようにするのが普通です。このコードをすべて削除することができます。 – chrylis
は実行されているプラグインですか?あなたは出力ログにそれを見ることができますか? 'build/plugins'や' build/pluginManagement/plugins'で定義しましたか? –
@ A_Di-Matteo、ビルド/プラグインで定義していますが、うまく動作します.WiRarでjarファイルを開き、webappフォルダのすべてのファイルを静的フォルダに表示します。 –