Spring MVC addResourceHandlers не работает - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь в течение 2 дней получить доступ к css контенту, но не могу.

Мой css файл находится в папке src / main / resources / static / css

Вот моя MVC конфигурация:

    @Configuration
    @EnableWebMvc
    @ComponentScan( basePackages = { "com.spring.spider" } )

public class WebMvcConfig implements WebMvcConfigurer {

    @Autowired
    private ApplicationContext      context;

    @Bean
    public SpringResourceTemplateResolver templateResolver() {
        SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
        templateResolver.setApplicationContext( context );
        templateResolver.setPrefix( "classpath:/templates/" );
        templateResolver.setSuffix( ".html" );
        return templateResolver;
    }

    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateEngineMessageSource( messageSource() );
        templateEngine.setEnableSpringELCompiler( true );
        templateEngine.addDialect( new Java8TimeDialect() );
        templateEngine.setTemplateResolver( templateResolver() );
        return templateEngine;
    }

    @Bean
    @Description( "Message Internationalization/Externalization" )
    public ResourceBundleMessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasename( "classpath:messages/message" );
        messageSource.setDefaultEncoding( "UTF-8" );
        return messageSource;
    }

    @Override
    public void configureViewResolvers( ViewResolverRegistry registry ) {
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine( templateEngine() );
        registry.viewResolver( viewResolver );
    }

    @Override
    public void addResourceHandlers( ResourceHandlerRegistry registry ) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }

Я написал в html шаблон:

<link rel="stylesheet" th:href="@{/resources/static/css/test.css}">

Но когда я открываю консоль браузера, я вижу

Refused to apply style from 'http://localhost:9090/intranet/resources/static/css/test.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

Я пытался найти хороший URL для доступа к статическим c ресурсам, но у меня всегда был HTTP-статус 405 - Метод запроса 'GET' не поддерживается

Спасибо за вашу помощь

...