6

現在、FreeMarker *.ftl に css ファイルを含めようとしています。また、サーブレット構成 xml ファイルでリソース フォルダーを構成しました。

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

しかし、FreeMarker テンプレートから css ファイルにアクセスするにはどうすればよいでしょうか?

私は単に次のことを試しましたが、成功しませんでした。

<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 ファイルがテンプレート フォルダーにあります。

4

2 に答える 2

8

私は2つの解決策を見つけました。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'/>"/>
...

スプリング マクロは、このブログで概要を説明している他の用途にも使用できます。

于 2011-08-05T09:07:26.803 に答える
1

あなたはこれを試すことができます、

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

実行時に、このコードは正確なパスを返します。

于 2013-01-08T14:02:34.043 に答える