1

大家好,

DropWizard 可以从 jar 文件外部提供资产吗?我已经读过,可以使用 dropwizard-configurable-assets-bundle(后来只有 DCAB)在 jar 文件之外提供静态文件。

但是网络上没有可用的示例。唯一的一个,在他们的 github 页面上对我来说不是很有帮助。

首先,有人说我应该实现 AssetsBundleConfiguration,但是没有提到我应该在哪里使用它。

接下来,在服务中,我应该放置这一行: bootstrap.addBundle(new ConfiguredAssetsBundle("/assets/", "/dashboard/")); 但不幸的是,它向我显示了一个错误,它不适用于该论点。

第三部分有一些yaml,但我不知道它是由bundle产生的,还是应该放在某个地方。

我注意到,路径是相对于 src/main/resources 的。是否还有选项如何访问除此之外的文件?

4

2 回答 2

1

所以这些步骤与 README.md 中描述的非常相似

  1. 你从依赖开始

    dependencies {
        compile 'com.bazaarvoice.dropwizard:dropwizard-configurable-assets-bundle:0.2.0-rc1'
    }
    
  2. AssetBundleConfiguration 接口需要你的标准配置文件来实现。所以在我的情况下:

    public class BookRespositoryConfiguration extends Configuration 
                 implements AssetsBundleConfiguration {
        @Valid
        @NotNull
        @JsonProperty
        private final AssetsConfiguration assets = new AssetsConfiguration();
    
        @Override
        public AssetsConfiguration getAssetsConfiguration() {
            return assets;
        }
    }
    
  3. 此配置在您的应用程序类中引用

    public class BooksRepositoryApplication 
                 extends Application<BookRespositoryConfiguration> {
    
        @Override
        public void initialize(Bootstrap bootstrap) {
            bootstrap.addBundle(new ConfiguredAssetsBundle("/assets/", "/books/"));
        }
    
        @Override
        public void run(BookRespositoryConfiguration configuration, 
                        Environment environment) throws Exception {
            //...
         }
     }
    
  4. 最后是配置。配置路径是相对于文档根目录的,所以在我的例子中,资产位于应用程序文件夹之外。

    assets:
        overrides:
            /books: ../book-repository
    

现在运行应用程序后,您可以轻松导航到http://localhost:8080/books/some-static-files.html

于 2014-03-15T19:59:20.083 回答
0

查看官方 dropwizard-bundles 中维护的最新 dropwizard-configurable-assets-bundle。

https://github.com/dropwizard-bundles/dropwizard-configurable-assets-bundle

于 2016-10-26T02:40:28.400 回答