シングルページアプリケーションの提供
コード例: single-page-application
Ktorは、React、Angular、Vueなどのシングルページアプリケーションを提供する機能を提供します。
依存関係の追加
シングルページアプリケーションを提供するには、ktor-server-core
依存関係のみが必要です。 特定の依存関係は不要です。
アプリケーションの提供
シングルページアプリケーションを提供するには、コンテンツをどこから提供するか(ローカルファイルシステムまたはクラスパス)を定義する必要があります。 少なくとも、シングルページアプリケーションを含むフォルダ/リソースパッケージを指定する必要があります。
フレームワーク固有のアプリケーションの提供
React、Angular、Vueなどの特定のフレームワークを使用して作成されたシングルページアプリケーションのビルドを提供できます。 プロジェクトルートにReactアプリケーションを含むreact-app
フォルダがあるとします。 アプリケーションは次の構造を持ち、index.html
ファイルがメインページです。
react-app
├── index.html
├── ...
└── static
└── ...
このアプリケーションを提供するには、routing
ブロック内でsinglePageApplication
を呼び出し、フォルダ名をreact
関数に渡します。
import io.ktor.server.application.*
import io.ktor.server.http.content.*
import io.ktor.server.routing.*
fun Application.module() {
routing {
singlePageApplication {
react("react-app")
}
}
}
Ktorは自動的にindex.html
を検索します。 デフォルトページをカスタマイズする方法については、「サービング設定のカスタマイズ」を参照してください。
その他のフレームワークについては、
angular
、vue
、ember
などの対応する関数を使用してください。
サービング設定のカスタマイズ
リソースからシングルページアプリケーションを提供する方法を説明するために、アプリケーションが次の構造を持つsample-web-app
リソースパッケージ内に配置されているとします。
sample-web-app
├── main.html
├── ktor_logo.png
├── css
│ └──styles.css
└── js
└── script.js
このアプリケーションを提供するには、次の設定が使用されます。
import io.ktor.server.application.*
import io.ktor.server.http.content.*
import io.ktor.server.routing.*
fun Application.module() {
routing {
singlePageApplication {
useResources = true
filesPath = "sample-web-app"
defaultPage = "main.html"
ignoreFiles { it.endsWith(".txt") }
}
}
}
useResources
: リソースパッケージからアプリケーションを提供することを有効にします。filesPath
: アプリケーションが配置されているパスを指定します。defaultPage
:main.html
をデフォルトで提供するリソースとして指定します。ignoreFiles
: 末尾に.txt
を含むパスを無視します。
完全な例はこちらで確認できます。