我正在使用Play 2.3(Java)框架,我想设置404页面。 我知道GlobalSettings的onHandlerNotFound方法。Play Framework - 为资产定义404页面
但资产似乎有自己的处理 - 资产类不会调用我的onHandlerNotFound方法,只发送空404状态。
我可以以某种方式拦截资产中的错误并设置我自己的处理?
在我看来,相当有限的是任何不存在的资产都会返回空404页面。
感谢您的任何建议。
编辑:一些代码 从路线:
GET /assets/*file controllers.Assets.at(path="/public", file)
从GlobalSettings:
@Override
public Promise<Result> onHandlerNotFound(RequestHeader arg0) {
return Promise.<Result>pure(Results.notFound(
errPage("notfound")));
}
感谢您的回复,但关于链接会谈定制控制器。 我需要拦截内置Assets类的错误处理。 我查看了它的源代码,它使用了一些类型为HttpErrorHandler的errorHandler,但由于我只理解Java而不是Scala,所以我不明白它是如何初始化的,以及它是否可能以某种方式更改。 有人能在哪里配置? – Juraj
你可以发布一些代码来更好地理解你正在努力完成的任务吗? – hamena314
我在初始文章中添加了一些代码片段。 但要指定我想要的: 如果有人前往/ sandkja,则不会选择路由并调用GlobalSettings.onHandlerNotFound,并显示一些错误页面。 但是,如果有人去/ assets/njdfhew,资产控制器将处理该操作,并且它有自己的错误处理 - 以防未发现状态为404的空白页面。 我想以某种方式将errorHandler插入到资产类,以便我可以自定义错误消息,找不到资产目录中的URL。 – Juraj