css - Spring MVC 无法加载 CSS,出现错误 405

标签 css spring-boot spring-mvc bootstrap-4 thymeleaf

我正在使用 Thymeleaf 构建一个 Spring Boot MVC 应用程序,但我在将静态内容(例如 CSS)加载到页面时遇到了问题。

每当我尝试在模板中加载 css 文件时,请求都会失败,错误代码为 405 Request method 'GET' not supported。 我尝试了多种不同的方式来引用 css 文件,例如

<link href="/css/style.css}" rel="stylesheet" type="text/css"/>
<link href="../static/css/style.css}" rel="stylesheet" type="text/css"/>
<link href="/static/css/style.css}" rel="stylesheet" type="text/css"/>
<link th:href="@{/static/css/style.css}" rel="stylesheet" type="text/css"/>

基本上所有前面所有可能的组合,仍然得到相同的错误。

我的文件结构是这样的:

└── src
    └── main
        ├── java
        │   └── cz
        │       └── company
        │           └── nps
        │               ├── NpsApplication.java
        │               ├── WebConfig.java
        │               └── controller
        │                   └── SurveyController.java
        └── resources
            ├── application.properties
            ├── messages.properties
            ├── messages_CZ.properties
            ├── messages_EN.properties
            ├── static
            │   ├── css
            │   │   └── style.css
            │   ├── img
            │   │   └── favicon.ico
            │   └── js
            └── templates
                ├── footer.html
                ├── header.html
                └── survey.html

WebCofig.java:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
        lci.setParamName("lang");
        return lci;
    }

    @Bean
    public LocaleResolver localeResolver()
    {
        final SessionLocaleResolver localeResolver = new SessionLocaleResolver();
        localeResolver.setDefaultLocale(new Locale("cs", "CZ"));
        return localeResolver;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }
}

我做错了什么?根据我找到的所有资料,这应该没有任何问题。

编辑 1: 构建.gradle:

plugins {
    id 'org.springframework.boot' version '2.1.5.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'cz.company'
sourceCompatibility = '11'

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.webjars:bootstrap:3.3.7'
    implementation 'dom4j:dom4j:1.6.1'

    implementation 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.2'
    implementation 'javax.jws:javax.jws-api:1.1'
    implementation 'javax.xml.ws:jaxws-api:2.3.1'

    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

最佳答案

这应该适合你:-

<link rel="stylesheet" type="text/css" th:href="@{/static/css/style.css}" />

更新 1:- 您的 web.xml 中是否有 js 和 CSS 的 Servlet 映射? 检查这些行。如果它不存在,请添加它并再次检查。

<servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>*.js</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>*.css</url-pattern>
</servlet-mapping>

关于css - Spring MVC 无法加载 CSS,出现错误 405,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56867622/

相关文章:

java - Spring RestTemplate : Overridding ResponseErrorHandler not working when set in Configuration class

spring-mvc - SpringBoot1.4-我运行IntegrationTest时无法找到@SpringBootConfiguration,在测试错误中使用@ ContextConfiguration/@SpringBootTest(class)

java - Spring:将值作为对象形式映射并传递给 Controller ​​以进行查看

java - Spring Integration - 按名称读取文件

html - <label> 按钮不适用于 CHROME 中的输入类型=文件

javascript - CSS 动画和 Z-index

javascript - 使div与文本在同一行,放在哪里显示:inline-block?

java - 如何在 Spring Boot 中将属性设置为通用 @Service 类?

java - @JoinColumn,如何初始化它?

javascript - 显示 flex 动态高度镶嵌网格