Dropwizard 0.8.0:从/提供静态资源服务

4
我希望我的服务器可以从/提供静态HTML文件。此外,CSS和JS文件应分别从/css/js提供。所有JSON数据都应该可以在/api中访问。
但是,当我尝试访问http://localhost:8080/或其他路径时,出现404错误。
我在配置文件中使用以下设置:
server:
  type: simple
  rootPath: /api/*

应用程序初始化方法看起来像这样:

application.initialize

@Override
public void initialize(io.dropwizard.setup.Bootstrap<MyConfiguration> bootstrap) {
    bootstrap.addBundle(new AssetsBundle("/assets/css", "/css", null, "css"));
    bootstrap.addBundle(new AssetsBundle("/assets/js", "/js", null, "js"));
    bootstrap.addBundle(new AssetsBundle("/assets/pages", "/", "index.html", "html"));
}
1个回答

6

我最近也遇到了一个类似的问题(文档并不是很清晰,但回头看,我猜大部分信息都在那里),我通过在我的应用配置中设置applicationContextPathrootPath来解决了这个问题:

server:
  type: simple
  rootPath: /api/*
  applicationContextPath: /

在简单服务器中,“applicationContextPath”的默认值为“/application”,因此您的完整根路径将是“/application/api/*”。如果您不需要使用简单服务器,则可以选择使用默认服务器,其applicationContextPath默认设置为“/”:

server:
  rootPath: /api/*

同意,对于像Dropwizard这样强大的工具没有清晰的文档,谢谢! - acabra85
太棒了,这个答案让我开心一整天。 - SoftwareDeveloper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接