css - Spring Boot 不加载 css 文件 : Request method 'GET' not supported

标签 css gradle spring-boot materialize webjars

Spring Boot 应用程序未从使用 Gradle 导入的 materializecss 库加载 css 文件

在我的 Controller 中我有这样的方法

@RequestMapping(value = "/")
public String home(){
    return "user/index";
}

index.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="layout/default">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="viewport" content="width=device-width, initialscale= 1,
            maximum-scale=1.0, user-scalable=no"/>
    <title>Dodaj produkt</title>
</head>
<body>
<div class="row" layout:fragment="content">
</div>
</body>
</html>

和default.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="viewport" content="width=device-width, initialscale= 1,
            maximum-scale=1.0, user-scalable=no"/>
    <title>Witaj w Thymeleaf</title>
    <link href="/webjars/materializecss/0.98.0/css/materialize.css"
          type="text/css" rel="stylesheet" media="screen,projection"/>
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"/>
</head>
<body>
<nav class="nav-extended">
    <div class="nav-wrapper">
        <a href="/" class="brand-logo">Logo</a>
        <a href="#" data-activates="mobile-demo" class="button-collapse"><i class="material-icons">menu</i></a>
        <ul id="nav-mobile" class="right hide-on-med-and-down">
            <li><a th:href="@{/products}">Produkty</a></li>
            <li><a th:href="@{/categories}">Kategorie</a></li>
            <li><a th:href="@{/cart}">Koszyk</a></li>
        </ul>
        <ul class="side-nav" id="mobile-demo">
            <li><a th:href="@{/products}">Produkty</a></li>
            <li><a th:href="@{/categories}">Kategorie</a></li>
            <li><a th:href="@{/cart}">Koszyk</a></li>
        </ul>
    </div>
</nav>
<div layout:fragment="content"></div>
<script src="/webjars/jquery/2.1.4/jquery.js"></script>
<script src="/webjars/materializecss/0.98.0/js/materialize.js"></script>
<script type="text/javascript">
    $(".dropdown-button").dropdown();
    $(".button-collapse").sideNav();
</script>
<script type="text/javascript" layout:fragment="script"></script>
</body>
</html>

我遇到了错误

WARN 4520 --- [nio-8080-exec-2] o.s.web.servlet.PageNotFound             : Request method 'GET' not supported

css样式没有加载

css files not loading

我试图找到解决方案,但我找不到任何符合我的问题的东西

[编辑] 除了创建另一个简单的应用程序以查明这些 webjars 是否可以在其中工作外,我什么也没做。它正在工作,所以我重新启动了主应用程序,问题几乎消失了。现在 css 文件加载正确,但我仍然收到不支持请求方法“GET”的警告,尽管现在一切看起来都很好 [编辑] 仍然无法正常工作,在另一个应用程序中正在加载 css 文件,在我的主应用程序中,当我尝试访问它们时出现 405

我的整个MainController看起来是这样的,没有映射到“/”的其他方法

@Controller
public class MainController {
    private ProductServiceImpl productsService;
    private CategoryService categoryService;
    private CartSession cartSession;

    @Autowired
    public MainController(ProductServiceImpl productService, CategoryService categoryService,
                          CartSession cartSession){
        this.productsService = productService;
        this.categoryService = categoryService;
        this.cartSession = cartSession;
    }

    @ModelAttribute
    public List<CartItem> getCart(){
        return cartSession.toList();
    }

    @RequestMapping(value = "/")
    public String home(){
        return "user/index";
    }

    @RequestMapping("products")
    public String products(Model model, @PageableDefault(size = 20) Pageable pageable, SearchForm searchForm,
                           SortingForm sortingForm){
        Page<Product> products = productsService.findAll(pageable);
        PageWrapper<Product> page = new PageWrapper<>(products, "/products");
        model.addAttribute("products", products);
        model.addAttribute("page", page);
        return "user/products";
    }


    @RequestMapping(value = "products", params = {"search"}, method = RequestMethod.POST)
    public String searchedProducts(Model model, @PageableDefault(size = 20) Pageable pageable, SearchForm searchForm,
                                   SortingForm sortingForm){
        Page<Product> products = productsService.searchByQuery(searchForm.getToFind(), pageable);
        PageWrapper<Product> page = new PageWrapper<>(products, "/products");
        model.addAttribute("products", products);
        model.addAttribute("page", page);
        return "user/products";
    }

    @RequestMapping(value = "products", params = {"sort"}, method = RequestMethod.POST)
    public String searchedProducts(Model model, @PageableDefault(size = 20) Pageable pageable,
                                   SortingForm sortingForm, SearchForm searchForm){
        Page<Product> products = productsService.getProductsOrdered(pageable, sortingForm.getOrderBy());
        PageWrapper<Product> page = new PageWrapper<>(products, "/products");
        model.addAttribute("products", products);
        model.addAttribute("page", page);
        return "user/products";
    }

    @RequestMapping("productPicture/{id}")
    public void getProductPicture(HttpServletResponse response, @PathVariable("id")Long id) throws IOException {
        String image = productsService.findById(id).getImagePath();
        response.setHeader("Content-Type",
                URLConnection.guessContentTypeFromName(image));
        InputStream in = new FileSystemResource(image).getInputStream();
        OutputStream out = response.getOutputStream();
        IOUtils.copy(in, out);
        in.close();
        out.close();
    }

    @RequestMapping("product/{id}")
    public String productInfo(@PathVariable(value = "id")Long id, Model model){
        model.addAttribute("product", productsService.findById(id));
        return "user/product";
    }

}

最佳答案

问题解决了

我的任何 webjars 文件甚至资源目录中的文件都没有正确加载的原因是另一个 Controller 我在这个注释中有错误

@RequestMapping(name = "/cart/updateProductQuantity", params="update", method = RequestMethod.POST)

我已经把它改成了这个,现在对我有用

@RequestMapping(value = "/cart/updateProductQuantity", params="update", method = RequestMethod.POST)

如果有人知道为什么会出现这个问题,请与我分享

关于css - Spring Boot 不加载 css 文件 : Request method 'GET' not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44708225/

相关文章:

html - 具有全局类的第一个类型与本地类不同

java - Gradle未在intelliJ idea 2016.2中下载依赖项

java - Bean 验证不适用于 spring webflux

css 定位问题在不同的浏览器中显示不同的结果

css - 使用 CSS 创建大型 super 菜单

html - CSS 选择紧跟在具有不同属性值的元素之后放置的所有元素

android - 如何在android studio中生成签名的apk

Android 连接测试常用代码移至库模块

java - ( Spring )th :with based on a condition

gradle - “Spring Extension”搜索未在STS-3.8.3的列表中显示Gradle