Где разместить файл robots.txt на сервере причала?

Недавно я начал проверять уязвимости безопасности нашего веб-приложения с помощью инструмента под названием Zap. После его запуска я обнаружил, что мне нужно включить robots.txt в наше веб-приложение.
Инструмент ищет файл в корневом каталоге веб-приложения (https://localhost:8080), и файл представлен там, но выдает ошибку "файл не найден". Я использую веб-сервер Jetty-9.3.8, и ниже приведена древовидная структура веб-приложения.

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

Итак, как поместить файл в корневой каталог, это не то, что я получаю. Кто-нибудь знает об этом?


person devd    schedule 29.04.2016    source источник


Ответы (1)


Для этого вам понадобится что-то, обслуживающее статический контент из contextPath из /.

Добавьте еще WebAppContext или ServletContextPath или ResourceHandler для обслуживания файла. Убедитесь, что у вас есть...

  • context.setContextPath("/") набор
  • context.setBaseResource(Resource.newResource("uri/path/to/my/static/content")
person Joakim Erdfelt    schedule 29.04.2016