新 Spring MVC 4 中的样式表

Posted

技术标签:

【中文标题】新 Spring MVC 4 中的样式表【英文标题】:Stylesheets in new Spring MVC 4 【发布时间】:2014-03-16 10:30:24 【问题描述】:

我在 Spring MVC 4(Spring Boot) 中启动了一个新的 Web 项目,我的问题是我必须将我的 css 文件放在哪里?我正在使用 thymeleaf 模板引擎和我的文件夹结构,如图

如您所见,我尝试在资源文件夹下创建一个 CSS 文件夹,但 index.html 中的链接 <link rel="stylesheet" href="/resources/css/main.css" /> 不起作用。有什么想法吗?

【问题讨论】:

【参考方案1】:

每the howto docs:

默认情况下,Spring Boot 将从类路径中名为 /static(或 /public 或 /resources 或 /META-INF/resources)的文件夹或 ServeltContext 的根目录中提供静态内容。

还有一两个样本,例如this one.

【讨论】:

【参考方案2】:

确保您将项目打包为 war 在您的 pom.xml 中。

/src/main/resources 文件夹通常部署到WEB-INF/classes,因此无法直接从上下文访问。

但是,/src/main/webapp 通常部署到 /(您的网络应用程序的根目录),可以从上下文访问。

您应该将您的网络资源放在/src/main/webapp 下(例如/src/main/webapp/css)。然后,它们会自动部署在 Web 应用程序的上下文根目录下。然后可以从例如访问它们。 /css.

<link rel="stylesheet" th:href="@/css/main.css" />

我还将您的模板移至/src/main/webapp/WEB-INF/templates

【讨论】:

它对我不起作用。注意他使用 Thymeleaf 的 OP 引用。其文档指出templates 文件夹必须保留在src/main/resources【参考方案3】:

如果您阅读 SpringBoot 文档,您会看到 Spring Boot 会自动添加位于以下任一目录中的静态 Web 资源:

/META-INF/resources/ /资源/ /静态/ /公共/

您已创建名为“css”的文件夹,并将文件“main.css”放入此文件夹中。 因此,在 HTML 中引用此文件时应使用相对路径

<link rel="stylesheet" href="/css/main.css" />

【讨论】:

以上是关于新 Spring MVC 4 中的样式表的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 视图添加样式表类或更改引导程序

在网页中如何添加CSS样式表?

如何在全局样式表中设置角度4组件选择器的样式?

MVC3.0如何引用CSS样式

System.Web.Optimization对脚本和样式表的压缩操作

怎样在css样式表中加入自己的图片