在同一个Dropwizard 0.8.5应用程序中映射静态和动态视图(以及REST端点)



我是DW的新手(使用0.8.5),正在尝试实现一个小型DW应用程序,该应用程序既可以作为web应用程序(提供静态和动态页面的混合服务),也可以为API客户端公开一些REST端点。

目前我有从根上下文提供的应用程序(http://localhost:8080对于本地和http://dev.myapp.example.com用于dev)。我正试图弄清楚如何制作一个映射到根上下文("/")的静态主页(index.html),以及映射到/contact的"联系我们"风格的静态页面(contact.html)。

这是我想要的URL策略:

http://localhost:8080/         --> index.html (my static homepage)
http://localhost:8080/contact  --> contact.html (static contact page)
http://localhost:8080/app/*    --> dynamic web pages, using DW Views & Freemarker
http://localhost:8080/api/*    --> REST endpoints under here

我发现这个博客真的让我很困惑,因为在0.8.5中似乎没有明确的方法来做到这一点。有人能解释一下实现这一目标所需的步骤吗?最好使用代码示例或GitHub要点?我认为这会帮助很多人。

听起来我需要添加AssetsBundle,但我不知道如何完全配置它,也不知道在我的应用程序中放置静态HTML文件的位置。想法?

我迄今为止最好的尝试:

  1. initialize()中添加bootstrap.addBundle(new AssetBundle())
  2. src/main/resources/assets/下放置所有静态触点(index.htmlcontact.htm等)

但是,我正在努力将src/main/resources/assets中的静态HTML文件与我想要的URL进行映射,尤其是以这样一种方式,即它们不会与动态视图/页面或REST资源/端点发生冲突。想法?

似乎AssetBundleConfigurableAssetBundle而不是DW>0.8.x中的方法。

相反,只需像使用动态视图一样使用Dropwizard Views捆绑包,只需将HTML文件重命名为FTL或胡子文件(例如,index.ftl而不是index.html等)。

最新更新