จะวางไฟล์ robots.txt บนเซิร์ฟเวอร์ Jetty ได้ที่ไหน

ฉันเพิ่งเริ่มตรวจสอบช่องโหว่ด้านความปลอดภัยของเว็บแอปพลิเคชันของเราผ่านเครื่องมือที่เรียกว่า Zap หลังจากเรียกใช้งาน ฉันพบว่าต้องรวม robots.txt ไว้ในเว็บแอปของเราด้วย
เครื่องมือนี้กำลังมองหาไฟล์ในไดเรกทอรีรากของเว็บแอป (https://localhost:8080) และไฟล์แสดงอยู่ที่นั่น แต่มีข้อผิดพลาดแจ้งว่า "ไม่พบไฟล์" เว็บเซิร์ฟเวอร์ที่ฉันใช้งานอยู่คือ 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();

ดังนั้นวิธีวางไฟล์ในไดเรกทอรีรากจึงไม่ใช่สิ่งที่ฉันได้รับ ใครมีความคิดเกี่ยวกับเรื่องนี้บ้างไหม?


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