大家好,
在Can DropWizard serve assets from outside the jar file?我已经读过,可以使用dropwizard-configurable-assets-bundle(以后只有DCAB)来提供jar文件之外的静态文件。
但网上没有可用的例子。唯一一个,在他们的github页面对我来说不是很有帮助。
首先,有人说,我应该实现AssetsBundleConfiguration,但是没有提到我应该在哪里使用它。
接下来,在服务中我应该把这行: bootstrap.addBundle(new ConfiguredAssetsBundle(“/ assets /”,“/ dashboard /”)); 但不幸的是,它向我显示了一个错误,它不适用于该论点。
在第三部分中有一些yaml,但我不知道,它是由bundle产生的,还是我应该把它放在某个地方。
我注意到,这些路径与src / main / resources相关。是否还有选项如何访问其外的文件?
答案 0 :(得分:1)
所以这些步骤与README.md
中描述的非常相似您从依赖
开始dependencies {
compile 'com.bazaarvoice.dropwizard:dropwizard-configurable-assets-bundle:0.2.0-rc1'
}
AssetBundleConfiguration接口需要由标准配置文件实现。所以在我的情况下:
public class BookRespositoryConfiguration extends Configuration
implements AssetsBundleConfiguration {
@Valid
@NotNull
@JsonProperty
private final AssetsConfiguration assets = new AssetsConfiguration();
@Override
public AssetsConfiguration getAssetsConfiguration() {
return assets;
}
}
此配置在您的应用程序类
中引用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 {
//...
}
}
最后配置。配置路径是相对于文档根目录的,因此在我的情况下,资产位于应用程序文件夹之外。
assets:
overrides:
/books: ../book-repository
现在,在运行应用后,您可以轻松导航至http://localhost:8080/books/some-static-files.html
答案 1 :(得分:0)
查看官方dropwizard-bundles维护的最新dropwizard-configurable-assets-bundle。
https://github.com/dropwizard-bundles/dropwizard-configurable-assets-bundle