将 robots.txt 文件放在码头服务器的什么地方?

Where to place the robots.txt file on jetty server?

我最近开始通过名为 Zap 的工具检查我们的 Web 应用程序的安全漏洞。在 运行 之后,我发现我必须在我们的网络应用程序中也包含 robots.txt。
该工具正在 Web 应用程序的根目录 (https://localhost:8080) 中查找文件,并且该文件出现在该目录中,但它会抛出一条错误消息 "file not found"。 我运行的webserver是Jetty-9.3.8 下面是webapp的树结构

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

我们正在使用嵌入式码头启动服务器。像这样:

    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();

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

您需要提供来自 /contextPath 的静态内容才能正常工作。

添加另一个 WebAppContextServletContextPathResourceHandler 来提供文件。确保您有 ...

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