Spring Boot の Webアプリで、静的コンテンツ(HTML, CSS, JS, 画像ファイルなど)を返す方法を書いていきます。
バージョン
- SpringBoot 3.0.0
- Java 17
1. 対応方法
src/main/resources
の下に、static
か public
ディレクトリを作成して、静的コンテンツを配置します。
以下に、動作確認方法を書いていきます。
2. HTMLの作成
プロジェクトのフォルダ spring-static
を作成して、その下に HTMLファイルを保存します。
src/main/resources/static/index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>サンプルページ</title> </head> <body> <p>Hello World.</p> </body> </html>
3. ビルドファイルの作成
Maven のビルドファイルを作成します。
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>org.example</groupId> <artifactId>spring-static</artifactId> <version>1.0.0</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
4. Javaコードの作成
アプリを起動するプログラムを作成します。
src/main/java/org/example/SpringApp.java
package org.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringApp { public static void main(String[] args) { SpringApplication.run(SpringApp.class, args); } }
5. 確認
アプリを起動して、以下の URL を開きます。
http://localhost:8080/index.html
以下の文言が表示されると成功です。
Hello World.
6. ディレクトリ階層について
static
の下に、ディレクトリ階層を作って公開することもできます。
src/main/resources/static/ - css/ - style.css - js/ - main.js
ローカルでアクセスする場合の URL は以下の通りです。
http://localhost:8080/css/style.css
http://localhost:8080/js/main.js
7. 注意事項
アプリを jar でパッケージングする場合は、src/main/webapp
を使わないように注意します。