#css #spring-security
#css #spring-безопасность
Вопрос:
После внедрения spring security — css-файлы перестают работать. Я получаю код ответа 200, но когда я пытаюсь заглянуть внутрь style.css, вместо этого я получаю HTML-код. Последние несколько дней я пытаюсь использовать все решения, которые я нашел в Интернете. — безрезультатно.
Я перемещаю свои файлы в resources / static / css/ folder — не работают. я настраиваю HttpSecurity для предоставления разрешения папки — не работает, я пытаюсь установить весь доступ к странице — нет авторизации — все еще не работает,
Строка Html
<link rel="stylesheet" type="text/css" th:href="@{/static/css/styles.css}" media="screen, projection">
конфигурация безопасности http
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.formLogin()
.defaultSuccessUrl("/index")
.and()
.logout()
.logoutSuccessUrl("/login")
.and()
.authorizeRequests().antMatchers("/login", "/css/styles.css", "/css/**").permitAll()
.anyRequest().authenticated();
Моя структура ресурсов
восстанавливается
— статический
—-css
styles.css
…
Я не получаю никаких ошибок. мой index.html
<!DOCTYPE html>
<!--suppress ALL -->
<html
xmlns:th="http://www.thymeleaf.org">
<head>
<!--<meta charset="utf-8">-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--<meta http-equiv="X-UA-Compatible" content="IE=edge">-->
<title>index</title>
<!-- Bootstrap CSS CDN -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"
integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4"
crossorigin="anonymous">
<!-- Font Awesome JS -->
<script defer src="https://use.fontawesome.com/releases/v5.0.13/js/solid.js"
integrity="sha384-tzzSw1/Vo 0N5UhStP3bvwWPq uvzCMfrN1fEFe xBmv1C/AtVX5K0uZtmcHitFZ"
crossorigin="anonymous"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.13/js/fontawesome.js"
integrity="sha384-6OIrr52G08NpOFSZdxxz1xdNSndlD4vdcf/q2myIUVO0VsqaGHJsB0RaBE01VTOY"
crossorigin="anonymous"></script>
<link rel="stylesheet" type="text/css" th:href="@{/static/css/styles.css}" media="screen, projection">
</head>
<body>
INDEX
<div class="wrapper">
<!-- Sidebar -->
<div id="sidebar">
<div th:insert="fragments/sidemenu.html"></div>
</div>
<div id="content">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<button type="button" id="sidebarCollapse" class="btn btn-info">
<i class="fas fa-align-left"></i>
<span>Toggle Sidebar</span>
</button>
<Welcomne sec:authentication="name"></Welcomne>
</div>
</nav>
</div>
</div>
<!-- jQuery CDN - Slim version (=without AJAX) -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X 965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH 8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<!-- Popper.JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"
integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ"
crossorigin="anonymous"></script>
<!-- Bootstrap JS -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"
integrity="sha384-uefMccjFJAIv6A rW L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm"
crossorigin="anonymous"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#sidebarCollapse').on('click', function () {
$('#sidebar').toggleClass('active');
});
});
</script>
</body>
</html>
Боковое меню загружается, но без форматирования
Я хочу иметь рабочую страницу с форматированием css, фактическая страница, похоже, загружается, но форматирование исчезло. Я понятия не имею, что попробовать дальше.
Комментарии:
1. Попробуйте удалить static при ссылке на ваш css-файл в атрибуте href: th:href=»@{/css/styles.css}».
2. Кроме того, вы не даете разрешения своим css-файлам, если вы сделали это, поделитесь своей соответствующей конфигурацией.
3. Я добавляю css lint в PermitAll, — никакого эффекта
4. Вы также пробовали переопределять configure (WebSecurity)? Мне удалось получить их в похожем проекте, подобном этому: @Override public void configure(WebSecurity web) выдает исключение { web.ignoring() .antMatchers(«/resources/**/**») .antMatchers(«/css/**»); }
5. Нет, не работает @Override public void configure(WebSecurity web) выдает исключение { web.ignoring().antMatchers(«/resources/**/**»).antMatchers(«/css/**»); }