Ссылка / включение CSS в FreeMarker с использованием Spring 3 MVC - PullRequest
6 голосов
/ 04 августа 2011

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

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

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

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

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

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

Ответы [ 2 ]

8 голосов
/ 05 августа 2011

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

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

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

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

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

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

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

1 голос
/ 08 января 2013

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

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

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

...