4
我有一個運行嵌入式jetty服務器的項目。 另外,我有項目的依賴項中的angularjs-1.2.12.jar。如何配置嵌入式jetty + webjars
如何配置jetty以暴露META-INF /資源中的文件。 我試着做到以下幾點:從目標/班
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{ "index.html" });
resource_handler.setBaseResource(Resource.newClassPathResource("/"));
Server server = new Server(8080);
server.setHandler(resource_handler);
但只有文件被曝光。
謝謝。
UPD:解決
ResourceHandler resource_handler = new ResourceHandler() {
@Override
public Resource getResource(String path)
throws MalformedURLException {
Resource resource = Resource.newClassPathResource(path);
if (resource == null || !resource.exists()) {
resource = Resource.newClassPathResource("META-INF/resources" + path);
}
return resource;
}
};
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{"index.html"});
resource_handler.setResourceBase("/");
server.setHandler(resource_handler);
你使用什麼版本的Jetty? –
jetty-all-9.1.1 –
它看起來像解決方案可能會暴露類路徑上的所有資源作爲靜態資產。如果這樣可能是一個很大的安全漏洞。這就是爲什麼Servlet 3的默認設置只能爲'META-INF/resources'前綴路徑執行此操作。 –