新 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 中的样式表的主要内容,如果未能解决你的问题,请参考以下文章