Spring Bootで特定の名前のビューを解決できない場合はどうなりますか?Springブート、Viewの考えられる原因を解決できない問題
以前私は多くのSpringブートアプリケーションを開発しており、これまでにこの問題が発生したことはありません。
/src/main/java
/src/main/resources/config
/src/main/resources/static
/src/main/resources/static/partials
/src/main/resources/static/resources
画像::
/src/main/resources/static/resources
フォルダがresources
名前を持つために問題を作っていない
は、私は、次のフォルダ構造を持っています。名前を変更しようとしましたが、問題は解決しませんでした。
私はMavenを使用していますが、私は複数の子プロジェクトを持つ親プロジェクトを持っています。
残りのapiのモジュールには、セキュリティの設定を含む多くの設定クラスが含まれています。
すべてが正常に動作しているため、アプリケーションをエラーなく開始できますが、静的コンテンツを追加しようとしたときにこの問題が発生しました。
次の例(example)から、Springブートは自動的にsrc/main/resources/static/index.html
をルートパスにマップする必要がありますが、これはアプリケーションでは起こりません。ログからは、春に/
のマッピングが見つからなかったことがわかります。
私はこの例を正常に実行することができますが、私のアプリケーションでは動作していません。 春が自動的にマッピングしませんでしたので、私は、ビューを返す必要がありWelcomeController
作成:私はマッピングが見つかった、ということでしたが、春にはそれが存在する場合でも名前index.html
との見解を解決することができなかったことを報告した後
@Controller
public class WelcomeRestController {
@RequestMapping("/")
public String welcome() {
return "index.html";
}
}
を。
私は、それが推奨されていない場合でもsrc/main/webapp/static
フォルダに静的なコンテンツを追加しようと、それはまた、うまくいきませんでした、同じ問題、ビューを解決することはできません。
私も再び
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
@Override public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index.html");
}
}
を使用して設定しようとした、ビューは解決することはできません。
私のアプリケーションの開始点:
@Import(MyRestServiceConfiguration.class)
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
私は組み込みのTomcatを使用しています。
は、それがセキュリティ設定やWebMvcConfigurerAdapter
を除く他の構成は、ビューに影響があることは可能ですか?
私は時間のために、この問題を解決しようとしていますが、私はsoulutionを見つけることができません。どんな助けもありがとう。
EDIT:
Mavenのが問題になることはありませんので、私は、ちょうどJavaアプリケーションとしてApplication.java
を実行し、Mavenを使用してアプリケーションを構築しておりません。
EDIT:index.htmlをの 内容:
<!DOCTYPE html>
<html >
<head lang="en">
</head>
<body>
<div>Hello</div>
</body>
</html>
@ArnaudDenoyelle Mavenメニューでは、依存関係の追加、プラグインの追加などしかありません。 –
静的なものは、ハンドラ/ビュー処理なしで直接消費するものです。ビュー名を返すハンドラメソッド(例えば 'welcome()')がある場合、ビューリゾルバは 'static'からではなく、それを処理しなければなりません。どんなビューテクノロジーを使用する予定ですか?タイメレフ?フリーマーカ? JSP?例えば。 Thymeleafは、デフォルトで 'static'フォルダではなく' template'フォルダからビューファイルを読み込みます。 – Andreas
@Andreasそれは単なるHTMLです。 index.htmlのコンテンツを含めるように質問を編集しました。 –