जब मैं एक जेएसपी के आगे एक सर्वलेट रखता हूं तो मुझे सीएसएस और छवियों को लोड करने और अन्य पृष्ठों के लिंक बनाने में परेशानी हो रही है। विशेष रूप से, जब मैंने मुझे सेट <welcome-file>
किया index.jsp
, तो सीएसएस लोड किया जा रहा है और मेरी छवियां प्रदर्शित की जा रही हैं। हालाँकि, अगर मैं अपने <welcome-file>
को HomeServlet
फॉरवर्ड कंट्रोल करने के लिए सेट करता हूं index.jsp
, तो सीएसएस लागू नहीं किया जा रहा है और मेरी छवियों को प्रदर्शित नहीं किया जा रहा है।
मेरी सीएसएस फ़ाइल में है web/styles/default.css
।
मेरी छवियाँ में हैं web/images/
।
मैं अपने सीएसएस की तरह लिंक कर रहा हूँ:
<link href="styles/default.css" rel="stylesheet" type="text/css" />
मैं अपनी छवियों को इस प्रकार प्रदर्शित कर रहा हूं:
<img src="images/image1.png" alt="Image1" />
यह समस्या कैसे होती है और मैं इसे कैसे हल कर सकता हूं?
अद्यतन 1 : मैंने एप्लिकेशन की संरचना और साथ ही कुछ अन्य जानकारी जोड़ी है जो मदद कर सकती हैं।
header.jsp
फ़ाइल फ़ाइल है कि सीएसएस के लिए लिंक टैग होता है। HomeServlet
मेरी के रूप में सेट किया गया है welcome-file
में web.xml
:
<welcome-file-list>
<welcome-file>HomeServlet</welcome-file>
</welcome-file-list>
सर्वलेट घोषित किया गया है और निम्नानुसार मैप किया गया है web.xml
:
<servlet>
<servlet-name>HomeServlet</servlet-name>
<servlet-class>com.brianblog.frontend.HomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HomeServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
अद्यतन 2 : मैंने समस्या को अंत में पाया - मेरे सर्वलेट को गलत तरीके से मैप किया गया था। जाहिरा तौर पर एक सर्वलेट सेट करते समय आपके पास <welcome-file>
इसका URL पैटर्न नहीं हो सकता है /
, जो मुझे अजीब लगता है, क्योंकि यह साइट की मूल निर्देशिका के लिए खड़ा नहीं होगा?
नई मैपिंग इस प्रकार है:
<servlet-mapping>
<servlet-name>HomeServlet</servlet-name>
<url-pattern>/HomeServlet</url-pattern>
</servlet-mapping>