Akka-HTTPで嵌った点をメモ的に残しておきます。
環境
OS: Windows11
Java: OpenJDK 17.0.7
Scala: 3.3.0
Akka: 2.7.0
Akka-HTTP: 10.5.2
※ Akkaは2.7.0からBSLに変更になりましたが、僕は年間売り上げ$25million以下なので、無料で使えると考えています。
内容
まず、Akka-HTTPには、レスポンスに対して、ContentTypeを設定することができる。text/htmlとか。(厳密には、text/html(UTF-8)で指定する)
ところが、CSSを表すContentTypeはhtmlと同様には用意されていない。
どうするかというとMediaTypes
を使う。
Main.scala
complete(HttpEntity(MediaTypes.`text/css` withCharset HttpCharsets.`UTF-8`, MyStyles.myRender()))
これでいける。
何がうれしいか
Content typeのヘッダをつけないと、ブラウザからCSSを読みこんだときに、htmlに適用されない。
これで、Content typeにtext/cssがついて、読みこんだファイルは無事、htmlに適用される。