如何在Dropwizard中为同一个URI提供两个assets文件夹。当使用相同的URI名称时,目前只提供第一个。
我正在使用(在我的主应用程序类中)注册AssetsBundle:
public void initialize(Bootstrap<DummyFrontendConfiguration> bootstrap) {
bootstrap.addBundle(new AssetsBundle("/assets1", "/public", null, "assets1"));
bootstrap.addBundle(new AssetsBundle("/assets2", "/public", null, "assets2"));
bootstrap.addBundle(new ViewBundle());
}
资产1中的Css文件(main.css):
h2{
color: red;
}
资产2中的Css文件(main2.css):
h4{
color: green;
}
在html模板头:
<link rel="stylesheet" type="text/css" href="public/stylesheets/main.css">
<link rel="stylesheet" type="text/css" href="public/stylesheets/main2.css">
在html模板正文中:
<h2>This should be red</h2>
<h4>This should be green</h4>
不幸的是,第二个css文件(main2.css)在html页面呈现期间无法加载(404 - 未找到),有什么想法吗?
答案 0 :(得分:0)
assets
模块的设计不是以这种方式运行的。在引擎盖下它正在呼唤:
environment.servlets().addServlet(assetsName, createServlet()).addMapping(uriPath + '*');
两个servlet都无法映射到同一路径。您可以通过将其中一个“公共”映射切换为另一个路径(例如“public2”)来解决此问题。
如果确实需要将资源完全分开,可能需要考虑在构建中引入另一个步骤(通过maven或ant),将资产合并到一个目录结构中进行部署。