html - Spring Boot 2 - 本地 css 文件未用于索引页面
问题描述
我有一个 Spring Boot 2 应用程序。
css 文件存储在 resources/static/css 下。这些文件在索引中引用,在控制器中映射。
但是当最初加载索引时,我的 css 文件中没有 css 格式。检查元素显示为空。此时我还没有登录并收到 Oauth2 令牌。
登录后,我转到另一个页面,应用 css 格式。并返回索引显示格式化。
html中的代码示例是
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href = "css/navigation.css" rel = "stylesheet"/>
<link href = "css/demo.css" rel = "stylesheet"/>
</head>
只是补充一下,在我的安全配置中,我有
http
.authorizeRequests()
.antMatchers("/**").hasRole("user")
.antMatchers("/", "/login**", "/unpkg.com/**", "/cdn.jsdelivr.net","/error**","/*.js","/css/**")
.permitAll()
.anyRequest()
.authenticated()
.and()
.csrf()
.csrfTokenRepository(new CookieCsrfTokenRepository())
.ignoringAntMatchers("/api/**");
所以猜测这是一个安全问题,但上面看起来是正确的。虽然我猜不是...
解决方案
答案是 antMatchers 的顺序。
http
.authorizeRequests()
.antMatchers("/", "/login**", "/unpkg.com/**", "/cdn.jsdelivr.net","/error**","/*.js","/css/**")
.permitAll()
.antMatchers("/**").hasRole("user")
.anyRequest()
.authenticated()
.and()
.csrf()
.csrfTokenRepository(new CookieCsrfTokenRepository())
.ignoringAntMatchers("/api/**");
推荐阅读
- raspberry-pi - 如何拦截键盘击并将其转发到计算机
- docker - 如何使用 docker 和 ddev 建立 TYPO3 站点?
- mysql - 拆分表并正确重新插入所有数据
- javascript - Angular - RoutingLink 未显示页面内容且未发现错误
- node.js - 如何在 typescript 和 ts-jest 中调试测试?
- javascript - 小滑块没有正确居中图像
- javascript - 如何使用javascript从起始索引中提取字符串到空白字符?
- python - 如何让 python matplotlib mathtext 在 centos7/rhel7 上工作?
- c - mingw 做一些 posix 实现吗?
- javascript - javascript textarea处理中的复制剪切粘贴功能