ทรัพยากรแบบคงที่ด้วย Richfaces 4.x

ฉันกำลังย้ายเว็บแอปพลิเคชันของฉันด้วย Richfaces จากเวอร์ชัน 3.3.3 เป็น 4.1 แต่ฉันประสบปัญหาหลายประการกับทรัพยากรแบบคงที่ (รูปภาพและ CSS เป็นหลัก) ฉันรู้ว่า JSF2 มีกลไกในการให้บริการทรัพยากรประเภทนี้ (วางทั้งหมดไว้ในโฟลเดอร์ชื่อ 'ทรัพยากร') ในเรื่องนี้ ผมมีคำถามสองข้อ:

  1. เป็นไปได้ไหมที่จะเปลี่ยนโฟลเดอร์นี้เป็นโฟลเดอร์อื่น?
  2. จะเกิดอะไรขึ้นกับเส้นทางสัมพัทธ์ใน CSS ฉันมีรูปภาพจำนวนมากที่เชื่อมโยงกับคุณสมบัติ 'ภาพพื้นหลัง' แต่ Richfaces 4.1 ไม่สามารถแก้ไขได้อย่างถูกต้อง ตัวอย่างเช่น ฉันโหลด CSS ของฉันซึ่งจัดสรรไว้ใน /resources/css ด้วยวิธีนี้:

    ‹ h:outputStylesheet Library="css" name="wdCalendar/calendar.css"/>

Calendar.css มีคลาสนี้:

.cic {
   background-repeat: no-repeat;
   display: inline-block;
   background-image: url(images/calendar/combined.gif);
}

Richfaces แก้ไข URL เป็น

http://nameApp/servletApp/javax.faces.resource/wdCalendar/images/calendar/combined.gif

แต่ฉันคิดว่ามันควรจะเป็น

http://nameApp/servletApp/resources/css/wdCalendar/images/calendar/combined.gif

ขอบคุณล่วงหน้า


person Sobrino    schedule 07.02.2013    source แหล่งที่มา


คำตอบ (1)


  1. ใช่ คุณสามารถเปลี่ยนได้ โฟลเดอร์ src/main/webapp (สมมติว่าเป็นสิ่งที่ดูเหมือนในโปรเจ็กต์ของคุณ) จะกลายเป็น /your-app บนเซิร์ฟเวอร์ และคุณสามารถใช้พาธสัมบูรณ์จากที่นั่นได้
  2. นั่นเป็นเพราะว่า h:outputStylesheet วางทรัพยากรไว้ในโฟลเดอร์ประเภท "นามธรรม" (ฉันไม่ทราบข้อมูลเฉพาะเจาะจง แต่นั่นคือสิ่งที่ดูเหมือน) และปล่อยให้เซิร์ฟเล็ตจัดการ ดูวิธีส่งออกลิงก์สไตล์ชีต มีหลายวิธีในการนี้

    • Use an absolute path

    /your-app/resources/css/wdCalendar/images/calendar/combined.gif

    • หรือเส้นทางสัมพัทธ์เพื่อออกจากโฟลเดอร์ "นามธรรม"

    ../resources/css/wdCalendar/images/calendar/combined.gif

    • หรือใช้เส้นทางสัมพัทธ์ที่เซิร์ฟเล็ตสามารถจัดการได้

    images/calendar/combined.gif.jsf?ln=css/wdCalendar (โปรดสังเกต .jsf ซึ่งเป็นการแมปเซิร์ฟเล็ตเริ่มต้นที่กำหนดใน web.xml ซึ่งอาจดูแตกต่างออกไปในแอปของคุณ และควรมีลักษณะเหมือนกับลิงก์สไตล์ชีตของคุณ) นอกจากนี้ ไม่สำคัญว่าส่วนใดของเส้นทางใน ln (สามารถเว้นว่างไว้ได้) ตราบใดที่เป็นเส้นทางที่ถูกต้องหากคุณรวมเข้าด้วยกัน

person Makhiel    schedule 07.02.2013