无法使用spring提供静态资源,而是接收索引

时间:2018-06-02 23:31:42

标签: css spring-boot thymeleaf

我有一个简单的Spring Web应用程序。

@Controller
public class GreetingController {

    @Autowired
    GreetingRepository repository;

    @GetMapping("/greeting")
    public String greetingForm(Model model) {
        model.addAttribute("greeting", new Greeting());
        return "greeting";
    }

    @PostMapping("/greeting")
    public String greetingSubmit(@ModelAttribute Greeting greeting) {
        repository.save(greeting);
        return "result";
    }

}

HTML是:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head> 
    <title>Greeting Sample</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" th:href="@{/css/style.css}"/>
</head>
<body>
    <h1>Form</h1>
    <form action="#" th:action="@{/greeting}" th:object="${greeting}" method="post">
        <p>Id: <input type="text" th:field="*{id}" /></p>
        <p>Message: <input type="text" th:field="*{content}" /></p>
        <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
    </form>
</body>
</html>

这是HTML中引用的css文件:

p {
    color: #ff5588;
}

但是,css未应用。

实际上,当我查询localhost:8080 / css / style.css时,它会返回索引页面的HTML内容。

2 个答案:

答案 0 :(得分:0)

安全配置结果是阻止了对资源的所有请求。相反,它将这些请求重定向到索引页面(已配置)。

解决方案结果很简单,授权对网站资源的所有请求(/images/**/css/**以及/js/**)。

配置完成后,Web应用程序按预期工作。

答案 1 :(得分:0)

这可能是安全配置问题。您的项目是否有安全实施(SpringSecurity或自定义)?如果是,您的用户是否可以访问/css/*网址或此网址是否具有公共访问权限?如果用户无权访问url或处理请求时出现异常,则可能会发生重定向。