春ブーツ春ブーツの美しさであるプラグアンドプレイ型の施設を提供します。同じことが、スプリングブートを備えたWebアプリケーション内の場所からの静的コンテンツの配信にも当てはまります。
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
、デフォルトの静的パスのパターンは次のとおりです:
spring.mvc.static-path-pattern=/**
をしかし、デフォルト以外の提供することをお勧めしますデフォルトでは春のブートは、デフォルトのプロパティとしてクラスパスから静的リソースを提供しています。
ただし、スプリングブートでは、WebMvcConfigurerAdapter
を実装することで、プログラムの設定をカスタマイズすることもできます。
@EnableAutoConfiguration
public class AddCustomLocations {
@Bean
WebMvcConfigurer configurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addResourceHandlers (ResourceHandlerRegistry registry) {
registry.addResourceHandler("/pages/**").
addResourceLocations("classpath:/my-custom-location/");
}
};
}
public static void main (String[] args) {
SpringApplication app =
new SpringApplication(AddCustomLocations.class);
app.run(args);
}
}
は今http://localhost:8080/pages/page1.js
のようなURLパターンが見つからときのようsrc/main/resources/new-custom-location/page1.js
とpage1.jsは静的リソースを務めする新しい静的なコンテンツを追加します。 templates/HelloWorld.html
のための今
、デフォルトのプロパティの変更が必要とされる(フォルダtemplates
がすでに存在していると仮定し):ディレクトリ/templates/
下
spring.mvc.view.prefix=/templates/
spring.mvc.view.suffix=.html
対応するHTMLページがviewResolverによってレンダリングされます。
編集回答:
あなたが@EnableWebMvc
を使用している場合は、その後、それを削除します。あなたの問題は解決されるはずです。 まだ問題が解決しない場合は、WebMvcConfigurerAdapter
のaddViewControllers(ViewControllerRegistry registry)
メソッドをオーバーライドしてください。 addResourceHandlers (ResourceHandlerRegistry registry)
メソッドの後に、上記のコードに以下のコードスニペットを追加してください。
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
registry.addViewController("/hello").setViewName("hello");
registry.addViewController("/test").setViewName("testPage");
}
接頭/templates/
とサフィックス.html
ビューリゾルバによって追加されるであろう。
私はjsとcssと画像を解決できますが、私はspringbootとapplictionでhtmlを使用しています。私はindex.htmlを訪問することはできません。 show javax.servlet。ServletException:名前 'dispatcherServletのサーブレットで名前' index 'のビューを解決できませんでした。しかし、私は.htmlをftlに変更します。大丈夫 。なぜあなたが知っているのかを教えてください。ありがとう – Ezreal
@エズリアル、私はFreeMarkerがあなたのクラスパス上に設定されていると思うので、もしあればクラスパスからの依存関係を削除してください。もう一つは、あなたの実際のコードをindex.htmlに提供していないということです。これは私の理解に従ってソリューションを提供していますが、アップデートを提供することができます。私の編集された答えを参照してください。 –