将robots.txt文件放在jetty服务器上的位置?

时间:2016-04-29 06:45:17

标签: jetty robots.txt embedded-jetty

我最近开始通过名为Zap的工具检查我们的Web应用程序的安全漏洞。运行后我发现我要在我们的webapp中包含robots.txt 该工具正在webapp的根目录中查找该文件(https://localhost:8080)并在那里显示该文件,但它会抛出错误,说“找不到文件”。 我正在运行的Web服务器是Jetty-9.3.8,以下是webapp的树结构

etc 
   - webdefault.xml
webapps
   - myapp
          - web.xml
          - generated-web.xml
robots.txt    

我们使用嵌入式jetty来启动服务器。像这样:

    WebAppContext context = new WebAppContext();
    context.setContextPath("/myapp");
    context.setWar(jettyHome + "/webapps/myapp/");
    context.setDefaultsDescriptor(jettyHome + "/etc/webdefault.xml");
    File overrideFile = new File(jettyHome
            + "/webapps/myapp/WEB-INF/generated-web.xml");
    if (overrideFile.exists()) {
        context.setOverrideDescriptor(jettyHome
                + "/webapps/myapp/WEB-INF/generated-web.xml");
    }

    server.setHandler(context);
    server.start();

因此,如何将文件放在根目录中并不是我得到的。 有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您需要提供contextPath / WebAppContext内容的静态内容才能发挥作用。

添加另一个ServletContextPathResourceHandlercontext.setContextPath("/")来提供该文件。确保你有......

  • context.setBaseResource(Resource.newResource("uri/path/to/my/static/content")设置
  • {{1}}