दिलचस्प पोस्ट
जावास्क्रिप्ट में एक चर स्ट्रिंग का एक्सएमएल पार्सिंग JavaMail का उपयोग करते हुए एक ईमेल में एकाधिक फ़ाइलों को कैसे संलग्न करें? क्या पायथन को मशीन कोड में संकलन करना संभव है? क्या थ्रेड करने या एक अलग फाइल / स्क्रिप्ट लिखने के बिना एक उपप्रकाशन में फ़ंक्शन को चलाना संभव है? मैं एंड्रॉइड एम्यूलेटर में एक्सीलरोमीटर कैसे अनुकरण कर सकता हूं? Valgrind में दबा हुआ लीक का क्या अर्थ है? स्काला से वर्गार्ज़ का उपयोग करना Server.MapPath ("।"), Server.MapPath ("~"), Server.MapPath (@ "\"), Server.MapPath ("/")। अंतर क्या है? एंड्रॉइड रेखीय रंग संसाधन के साथ लेआउट: मैं क्या कर रहा हूँ गलत? Android Marshmallow पर लीगेसी अपाचे HTTP क्लाइंट का उपयोग कैसे करें? आईओएस आईफोन में कैमरे द्वारा दिए गए छवि से जीपीएस डेटा पढ़ना जीआईटी ऑटोक्रॉल्फ सेटिंग्स के लिए निश्चित सिफारिश एनएलटीके v3.2: nltk.pos_tag () में असमर्थ स्थैतिक / गतिशील बनाम सशक्त / कमजोर मैं एक छवि के अंदर एक छवि (आईएमजी) कैसे फिट और पहलू अनुपात रखूं?

संदर्भ रूट नाम को बिना बिना सापेक्ष पथ का उपयोग कैसे करें?

मेरी स्थिर फाइल (सीएसएस, जे एस) को काम करने के लिए मुझे /AppName/templates/style/main.css जैसे पूर्ण पथ लिखना /AppName/templates/style/main.css । क्या कोई समाधान है, कि मैं style/main.css जैसी रिश्तेदार पथ लिख सकता हूं?

Solutions Collecting From Web of "संदर्भ रूट नाम को बिना बिना सापेक्ष पथ का उपयोग कैसे करें?"

यदि आपकी वास्तविक चिंता Webapp संदर्भ ("AppName" भाग) की गतिशीलता है, तो बस इसे HttpServletRequest#getContextPath() द्वारा गतिशील रूप से पुनर्प्राप्त करें।

 <head> <link rel="stylesheet" href="${pageContext.request.contextPath}/templates/style/main.css" /> <script src="${pageContext.request.contextPath}/templates/js/main.js"></script> <script>var base = "${pageContext.request.contextPath}";</script> </head> <body> <a href="${pageContext.request.contextPath}/pages/foo.jsp">link</a> </body> 

यदि आप सभी रिश्तेदार लिंक के लिए एक बेस पथ सेट करना चाहते हैं तो आपको प्रत्येक रिश्तेदार लिंक में ${pageContext.request.contextPath} दोहराने की आवश्यकता नहीं है, <base> टैग का उपयोग करें यहां जेएसटीएल फ़ंक्शंस की मदद से एक उदाहरण है ।

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ... <head> <c:set var="url">${pageContext.request.requestURL}</c:set> <base href="${fn:substring(url, 0, fn:length(url) - fn:length(pageContext.request.requestURI))}${pageContext.request.contextPath}/" /> <link rel="stylesheet" href="templates/style/main.css" /> <script src="templates/js/main.js"></script> <script>var base = document.getElementsByTagName("base")[0].href;</script> </head> <body> <a href="pages/foo.jsp">link</a> </body> 

इस तरह हर रिश्तेदार लिंक (यानी / या एक योजना से शुरू नहीं होने पर) <base> सापेक्ष हो जाएगा

यह जिस तरह से विशेष रूप से किसी भी तरह से टॉमकेट से संबंधित नहीं है यह बस HTTP / HTML मूल बातें से संबंधित है आपके पास हर अन्य वेबसर्वर में एक ही समस्या होगी।

यह भी देखें:

  • सीएसएस, छवियों और लिंक जैसे रिश्तेदार संसाधन ब्राउजर उपयोग नहीं कर सकते हैं
  • क्या यह <base> html टैग का उपयोग करने की सिफारिश की है?

बस <c:url> -tag को किसी अनुप्रयोग संदर्भ से संबंधित पथ का उपयोग करें।

जब value पैरामीटर / साथ शुरू होता है, तो टैग उसे एक आवेदन सापेक्ष यूआरएल के रूप में value लेगा, और यूआरएल में आवेदन-नाम जोड़ देगा। उदाहरण:

jsp:

 <c:url value="/templates/style/main.css" var="mainCssUrl" />` <link rel="stylesheet" href="${mainCssUrl}" /> ... <c:url value="/home" var="homeUrl" />` <a href="${homeUrl}">home link</a> 

एक डोमेन सापेक्ष यूआरएल के साथ यह एचटीएमएल बन जाएगा:

 <link rel="stylesheet" href="/AppName/templates/style/main.css" /> ... <a href="/AppName/home">home link</a> 

आप कुछ निर्देशिका से टॉमकेट प्रारंभ करते हैं – जो टककैट के लिए $ cwd है आप इस $ cwd के सापेक्ष किसी भी पथ को निर्दिष्ट कर सकते हैं।

मान लीजिए आपके पास है

 home - tomcat |_bin - cssStore |_file.css 

और मान लें कि आप "बिन / स्टार्टअप.श" कमांड का उपयोग करते हुए ~ / tomcat से टॉमकेट शुरू करते हैं

टॉमकैट के लिए ~ / tomcat होम डायरेक्टरी ($ cwd) बनती है

अब आप अपने servlet में क्लास फ़ाइलों से "../cssStore/file.css" एक्सेस कर सकते हैं

उम्मीद है कि मदद करता है, – एमएस

इसके बजाय पूरे लिंक का उपयोग कर हम नीचे के रूप में कर सकते हैं (समाधान चिंता जेएसपी फ़ाइलें)

जेएसटीएल के साथ हम इसे पसंद कर सकते हैं: सीएसएस जैसे संसाधनों को लिंक करने के लिए, जेएस:

  <link rel="stylesheet" href="${pageContext.request.contextPath}/style/sample.css" /> <script src="${pageContext.request.contextPath}/js/sample.js"></script> 

बस एक लिंक बनाने के लिए:

  <a id=".." class=".." href="${pageContext.request.contextPath}/jsp/sample.jsp">....</a> 

टैग से परिचित होने के लायक यह है

  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 

नीचे की तरह इसे करने के लिए भी jsp विधि है, लेकिन ऊपर की तरह बेहतर तरीका:

  <link rel="stylesheet" href="<%=request.getContextPath()%>/style/sample.css" /> <script type="text/javascript" src="<%=request.getContextPath()%>/js/sample.js"></script> 

बस एक लिंक बनाने के लिए:

  <a id=".." class=".." href="<%=request.getContextPath()%>/jsp/sample.jsp">....</a> 

यह सरल किया जा सकता है:

 <base href="${pageContext.request.contextPath}/"/> 

सभी यूआरएल को अनावश्यक domain:port बिना बनाया जाएगा domain:port लेकिन आवेदन संदर्भ के साथ

यह @ राल्फ सुझाव का व्युत्पन्न है जो मैं उपयोग कर रहा हूं। अपने जेएसपी के शीर्ष पर c:url जोड़ें।

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:url value="/" var="root" /> 

फिर बस अपने पृष्ठ में रूट चर का संदर्भ दें:

 <link rel="stylesheet" href="${root}templates/style/main.css">