【问题标题】:Serving static assets with Dropwizard使用 Dropwizard 提供静态资产
【发布时间】:2018-10-10 19:40:28
【问题描述】:

Dropwizard 版本 1.3.0-rc6

大多数关于提供静态内容的文档都是针对旧版本的,甚至 Dropwizard Manual 中的更新文档也不完全适合我。

我想提供一个静态 html 文件。我已经修改了提供这些资产的结构/路径,但在我的环境中无法完全正确配置。

静态内容位于以下结构下


src/main/
├── java
│   └── 组织
│   └── com
│   └── 查询
│
│   ├── 休息
│   │   ├── api
│   │   ├── cli
│   │   ├── 核心
│   │   ├── 分贝
│   │   ├── 健康
│   │   ├── 资源
│   │   ├── 任务
│   │   └── 浏览量
│
├── 资源
│   ├── META-INF
│   │   ├── bin-license-notice
│   │   │   └── 许可证
│   │   └── 服务
│   └── 休息
│   ├── ftl
│   └── 小胡子
└── 网页应用
    ├── WEB-INF
    │   └── 浏览量
    │   └── jsp
    └── 资源
        └── 核心
            ├── css
            └── js

multiFileUpload.html 在src/main/webapp/resources/core 目录中,这最终是我想要服务的。但是,这与 src/main/resources/assets/ 的 dropwizard 标准不同。

我需要扩展构造函数来指定单个 AssetBundle,因为我计划拥有多个 AssetBundle 实例。这就是我的应用程序初始化方法中的内容。

@Override public void initialize(Bootstrap<HelloWorldConfiguration> bootstrap) { bootstrap.addBundle(new AssetsBundle("/webapp/resources/core/*", "/", null, "/MultiFileUpload.html")); }

我还在应用程序运行方法中设置了一个 urlPattern。 environment.jersey().setUrlPattern("/rest/*");

我的 config.yml 中的根路径是rootPath:/rest/*

我有一个应该提供 .html 文件的端点。 localhost:port/rest/upload/multiFile

我几乎可以肯定这些路径之一不正确,但我已尝试根据文档示例更改它们,但没有任何运气。

【问题讨论】:

  • 你是如何运行 Dropwizard 的?摇篮?马文?主意?我怀疑您的问题是 webapp 不是您的任何资源路径的一部分,因此 DW 看不到它。尝试将其挂载为绝对路径,如果可行,则为类路径问题
  • 我正在使用 Maven 运行。 webapp 只是一个包含静态内容的子目录。文件上传服务本身已经注册在我的 DW 应用的环境配置中。我会看看提供完整绝对路径的作用。 @tddmonkey
  • 我选择将它移到 dropwizard 的传统结构下。仍然无法让 .html 文件显示在所需的端点

标签: java rest dropwizard


【解决方案1】:

我刚刚针对类似问题发布了answer。我也会在这里列出它们,

  1. AssetBundle 路径是从项目资源文件夹中计算出来的。因此添加相对于它的路径。这里assets目录位于${Project Root}/src/main/resources目录中

    bootstrap.addBundle(new AssetsBundle("/assets/", "/"));
    
  2. 删除显式 Jersey 注册表项。我相信这是从配置中继承的。

    environment.jersey().setUrlPattern("/*"); /*this line should be removed*/
    

您需要将dropwizard-assets 包含到项目的依赖项中。

为了便于参考,我创建了一个带有静态资产的sample project。

【讨论】:

    猜你喜欢
    • 2020-06-19
    • 2015-08-20
    • 2016-02-29
    • 2019-03-01
    • 2013-03-06
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 2016-10-11
    相关资源
    最近更新 更多