Skip to content

assets: custom response when asset isn't found #3501

@jonaskahn

Description

@jonaskahn

I want to make a customized handler to handle 404 error, when error happen, send back 404 page
Here is my implementation

package com.sample

import io.jooby.kt.Kooby
import io.jooby.kt.runApp
import io.jooby.netty.NettyServer
import io.jooby.OpenAPIModule
import io.jooby.StatusCode
import io.jooby.handler.AssetHandler
import io.jooby.handler.AssetSource
import java.time.Duration

class App: Kooby({
  install(NettyServer())
  install(OpenAPIModule())
  mvc(Controller())

  val www = AssetSource.create(this.classLoader, "static")
  assets(
    "/*", AssetHandler(www)
      .setMaxAge(Duration.ofDays(365))
  )

  error(StatusCode.NOT_FOUND) { ctx, _, _ ->
    ctx.sendRedirect("/404.html")
  }
})

fun main(args: Array<String>) {
  runApp(args, ::App)
}

I tried with sendRedirect or forward, but it does not work.
Could you show me the way to send a html page for 404 error?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions