首先要说的是,我一直在寻找一个解决方案有一段时间了,我现在非常绝望。
当由Sping Boot 运行时,我无法从html页面访问css文件。
html.file
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head lang="en">
<title th:text='#{Title}'>AntiIntruder</title>
<meta charset="UTF-8" />
<link rel="stylesheet" type="text/css" media="all" href="../assets/css/style.css" th:href="@{/css/style.css}" />
</head>
<body>
...
Application.java
@SpringBootApplication // adds @Configuration, @EnableAutoConfiguration, @ComponentScan
@EnableWebMvc
public class Application extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("classpath:/assets/*");
}
}
文件夹结构:
我试过将css
文件夹放到static
文件夹中,或者删除addResourcesHandlers,通过相对路径引用css,或者其他一些方法。似乎没有任何解决方法。如果你尝试解决这个问题,但没有找到解决方法,请告诉我,这样我就知道,我没有被忽略。
9条答案
按热度按时间vdgimpew1#
1.使用自定义资源路径
在您的Web配置中
将您的
style.css
文件放入此文件夹src/main/resources/assets/css/
那以后在你看来
。
2.使用 Spring Boot 中的预定义路径
从Web配置中删除
addResourceHandlers
将
style.css
放入以下任一文件夹中src/main/resources/META-INF/resources/assets/css
src/main/resources/resources/assets/css/
src/main/resources/static/assets/css/
src/main/resources/public/assets/css/
而在观
。
assets
文件夹。如果您想要这样做,请从预先定义的资源文件夹和检视th:href
中移除它。但我保留它,因为您在问题中明确提到assets/
路径。所以我相信您的资源URL中必须有assets/
。*x6yk4ghg2#
问题出在
Application.java
文件中的@EnableWebMvc
注解。当我删除这个注解后,css在localhost:8080/css/style.css
上开始可用,但没有被应用。到目前为止,我还没有找到@EnableWebMvc
导致问题的原因。然后,我删除了一个Map到
/**
的控制器,为了显示自定义错误页面,我已经实现了这个控制器。在删除也这一个,我有我的CSS工作. =)
30byixjq3#
如果将css放在static文件夹中,则不需要addResourceHandlers方法。
或者,如果确实要将它们放在“资源”文件夹中:
在这两种情况下,CSS应该通过
eqfvzcg84#
将css文件夹放入resources/static文件夹中
fjnneemd5#
在我的例子中,问题出在文件读取权限上。我从另一个项目中复制了文件“style.css”,但浏览器无法读取它。重新创建“style.css”后,一切正常。
guz6ccqo6#
我的建议是(再次)将
css
文件夹放在static
文件夹下,删除addResourcesHandlers,并使用绝对路径(例如/css/style.css
)到达css。wtzytmuj7#
对我来说,我必须删除对样式表的静态引用,这样它才能在thymeleaf中工作。
成为
我花了几个小时尝试各种配置和文件路径重命名。不知道为什么,但这是唯一的事情,让我的css和js加载到Spring Boot 5。
jslywgbw8#
首先使用WebMvcConfigurer在一个配置类上实现,如下所示
所以现在您可以像这样覆盖HttpSecurity配置
如果您使用webjars库(如bootstrap),请将此配置添加到WebSecurityConfiguration中
sdnqo3pr9#
如果这个主题在2022年仍然相关。我有一个类似的问题,我这样解决它:
此链接位于/templates/file. html中
我已经添加了application.properties
我css路径是
helpful link