Ссылка / включить css в FreeMarker с помощью Spring 3 MVC

в настоящее время я пытаюсь включить файл css в свой FreeMarker *.быстрее света. Я также настроил папку ресурсов в xml-файле конфигурации сервлета.

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

но как я могу получить доступ к файлу css из моего шаблона FreeMarker?

Я просто попробовал следующее, но безуспешно.

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

папка ресурсов находится в корне моего приложения spring MVC 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 находятся в папке templates.

2 ответов


Я нашел два решения. Один с макросами spring и один без в моем файле FreeMarker.

самый простой способ-это использовать его без макросов:

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

в этом решении я должен определить полный путь.

используя весенние макросы, вы должны заложить свою весну.ftl в каталог шаблонов и включить его в каждый шаблон FreeMarker, где вы хотите использовать его.

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

весенние макросы также могут использоваться для других целей этот блог дает хороший обзор.


вы можете попробовать это,

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

во время выполнения этот код вернет точный путь.