我正试图让码头和角度2一起工作。为此,我需要服务器将所有index.html / ... urls重写为index.html 我的配置是这样的:
Server server = new Server(8080);
HandlerCollection handlerCollection = new HandlerCollection();
RewriteHandler rewrite = new RewriteHandler();
rewrite.setRewriteRequestURI(true);
rewrite.setRewritePathInfo(false);
rewrite.setOriginalPathAttribute("requestedPath");
RewriteRegexRule oldToNew = new RewriteRegexRule();
oldToNew.setRegex("\\/index.html\\/.*");
oldToNew.setReplacement("/index.html");
oldToNew.setTerminating(true);
rewrite.addRule(oldToNew);
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setDirectoriesListed(true);
resourceHandler.setWelcomeFiles(new String[]{"index.html"});
resourceHandler.setResourceBase("./resources");
resourceHandler.setMinMemoryMappedContentLength(-1);
rewrite.setHandler(resourceHandler);
handlerCollection.addHandler(rewrite);
//now I am adding some more Contexthandlers to the handler collection
ContextHandler contextHandler = new ContextHandler("/service/test");
contextHandler.setHandler(jsonHandler);
handlers.addHandler(contextHandler);
//...
handlerCollection.addHandler(new DefaultHandler());
server.setHandler(handlerCollection);
try {
server.start();
server.join();
} catch (Exception e) {
LOGGER.error("Problem starting server", e);
}
结果是: 1:我可以像预期的那样打开http://localhost:8080/index.html 2:如果我试图打开http://localhost:8080/index.html/test码头说:“问题访问/index.html。原因:找不到”