使用 Spring 3 MVC 在 FreeMarker 中链接/包含 css

发布于 2024-11-28 10:54:07 字数 968 浏览 1 评论 0原文

我目前正在尝试在我的 FreeMarker *.ftl 中包含一个 css 文件。我还在 servlet 配置 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>
    <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 文件夹中。

I am currently trying to include a css file in my FreeMarker *.ftl. I also have configured a resource folder in my servlet config xml file.

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

But how can I access my css file from my FreeMarker template?

I simply tried the following but without success.

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

The resource folder lies in the root of my spring MVC 3.0 application.

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

My Servlet root is defined as:

<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>

My FreeMarker files are lying in the templates folder.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

久而酒知 2024-12-05 10:54:07

我找到了两种解决方案。在我的 FreeMarker 文件中,一种包含 spring 宏,一种不包含 spring 宏。

最简单的方法是在没有宏的情况下使用它:

<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'/>"/>
...

spring 宏还可以用于其他用途此博客< /a> 给出了很好的概述。

I have found two solutions. One with spring macros and one without in my FreeMarker file.

The simplest way is to use it without macros:

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

In this solution I have to define the complete path.

By using spring macros you have to lay your spring.ftl into your template directory and include it in each FreeMarker template where you like to use it.

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

The spring macros can also be used for other things this blog gives a good overview.

凉世弥音 2024-12-05 10:54:07

您可以尝试一下,

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

在运行时此代码将返回准确的路径。

You can try this,

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

At run time this code will return exact path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文