我有一个WAR(通过Embedded Jetty提供),我想在WAR之外包含静态文件 。我的目标是:
const libxmljs = require("libxmljs");
let xmlString = '<set id="1" state="0" name="wd"/>';
let xmlDoc = libxmljs.parseXml(xmlString);
res.set('Content-Type', 'text/xml');
res.send(xmlDoc);
中调用jar,我想配置一个URL /srv/app
来服务http://myapp.com/static/js/my.js
。/src/app/public/js/my.js
路径转义../
,则将提供该文件,如果不存在,则将WAR的/src/app/public/index.html
送达。这是我检查的内容以及卡住的地方:
答案 0 :(得分:0)
ResourceHandler:这是正确的方法吗?我无法弄清楚如何使用它来达成目标
不要使用ResourceHandler
之下的DefaultServlet
。
如https://www.eclipse.org/jetty/documentation/current/static-content-deployment.html中所述配置Jetty;这似乎很理想,但是当复制时,似乎什么也没做(这是NOOP)。
仅当您与部署的Web应用程序共享的contextPath
不同时,此方法才有效。
DefaultServlet是否可以通过WAR以外的路径提供与应用程序的pwd相关的静态内容?
是的,这已通过几种不同的方式记录在stackoverflow上。
关键是,您将在不同的DefaultServlet
上使用额外的url-patterns
条目,这些条目由它们自己的“资源基本路径”定义(必须是标准路径条目,没有相对路径)。>
请参阅: