2011-08-04 12 views
6

का उपयोग कर फ्रीमार्कर में सीएसएस को लिंक/शामिल करें मैं वर्तमान में अपने फ्रीमार्कर * .ftl में एक सीएसएस फ़ाइल शामिल करने की कोशिश कर रहा हूं। मैंने अपनी सर्वलेट कॉन्फ़िगरेशन xml फ़ाइल में संसाधन फ़ोल्डर को भी कॉन्फ़िगर किया है।स्प्रिंग 3 एमवीसी

<mvc:resources mapping="/resources/**" location="/resources/" /> 

लेकिन मैं अपने फ्रीमार्कर टेम्पलेट से अपनी सीएसएस फ़ाइल कैसे एक्सेस कर सकता हूं?

मैंने बस निम्नलिखित की कोशिश की लेकिन सफलता के बिना।

<link href="/resources/css/style.css" rel="stylesheet" type="text/css" /> 

संसाधन फ़ोल्डर मेरे वसंत एमवीसी 3.0 एप्लिकेशन की जड़ में स्थित है।

/web 
    /resources 
    /img 
    /css 
    /WEB-INF 
    /templates 

मेरे सर्वलेट जड़ के रूप में परिभाषित किया गया है:

<servlet> 
    <servlet-name>springmvc</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>springmvc</servlet-name> 
    <url-pattern>/web/*</url-pattern> 
</servlet-mapping> 

मेरे FreeMarker फ़ाइलों टेम्पलेट्स फ़ोल्डर में झूठ बोल रहे हैं।

+0

क्या आपकी जेनरेट की गई वेबसाइट में सीएसएस फ़ाइल का लिंक काम करता है? क्या आपकी वेबसाइट रूट सर्वलेट संदर्भ में, या एक अलग संदर्भ में तैनात है? – Chaquotay

+0

हाय, मेरे रूट सर्वलेट संदर्भ में एक सामान्य स्थैतिक HTML फ़ाइल से यह एक सापेक्ष पथ के साथ काम करता है। –

उत्तर

7

मुझे दो समाधान मिल गए हैं। वसंत मैक्रोज़ के साथ एक और मेरी फ्रीमार्कर फ़ाइल में बिना।

सबसे आसान तरीका मैक्रो के बिना इसका इस्तेमाल करने के लिए है:

<link rel="stylesheet" type="text/css" 
href="/springmvc/resources/css/style.css" /> 

इस समाधान मैं पूर्ण पथ को परिभाषित करने के लिए है में।

वसंत मैक्रोज़ का उपयोग करके आपको अपनी spring.ftl को अपनी टेम्पलेट निर्देशिका में रखना होगा और इसे प्रत्येक फ्रीमार्कर टेम्पलेट में शामिल करना होगा जहां आप इसका उपयोग करना चाहते हैं।

<#import "spring.ftl" as spring /> 
<html> 
<head> 
<title>...</title> 
<link rel="stylesheet" type="text/css" 
    href="<@spring.url '/resources/css/style.css'/>"/> 
... 

वसंत मैक्रो भी अन्य चीजों के लिए इस्तेमाल किया जा सकता this blog एक अच्छा सिंहावलोकन देता है।

+2

यही मुझे संदेह है। Spring.url मैक्रो का उपयोग कर IMHO बेहतर समाधान है क्योंकि यह अधिक लचीला है। – Chaquotay

1

आप इस कोशिश कर सकते हैं,

<link rel="stylesheet" type="text/css" href="<c:url value="/"/>resources/css/style.css" /> 

रन समय इस कोड को सही पथ वापस आ जाएगी।

+0

यह एक जेएसपी में जेएसटी के साथ काम करेगा, एफटीएल में नहीं। – ScottM

संबंधित मुद्दे