Spring Boot无法加载资源:服务器响应状态为404

时间:2018-06-26 13:29:57

标签: spring spring-mvc spring-boot

我遇到此错误:

enter image description here

  

加载资源失败:服务器响应状态为404

这是我加载 css 的方式。请注意,我没有使用WebMvcConfigurer

<head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
   <meta http-equiv="x-ua-compatible" content="ie=edge">
   <title>Material Design Bootstrap</title>
   <!-- Font Awesome -->
   <link rel="stylesheet" th:href="@{https://maxcdn.bootstrapcdn.com/font-awesome/4.6.0/css/font-awesome.min.css}">
   <!-- Bootstrap core CSS -->
   <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}">
   <!-- Material Design Bootstrap -->
   <link rel="stylesheet" th:href="@{/css/mdb.min.css}">
   <!-- Your custom styles (optional) -->
   <link rel="stylesheet" th:href="@{/css/style.css}">
</head>  

我正在页面末尾(正文)加载 js 文件。

   <body>

    ......      

    <!-- SCRIPTS -->
    <!-- JQuery -->
    <script type="text/javascript" src="/static/js/jquery-3.1.1.min.js" th:src="@{/js/jquery-3.1.1.min.js}"></script>
    <!-- Bootstrap tooltips -->
    <script type="text/javascript" src="/static/js/popper.min.js" th:src="@{/js/popper.min.js}"></script>
    <!-- Bootstrap core JavaScript -->
    <script type="text/javascript" src="/static/js/bootstrap.min.js" th:src="@{/js/bootstrap.min.js}"></script>
    <!-- MDB core JavaScript -->
    <script type="text/javascript" src="/static/js/mdb.min.js" th:src="@{/js/mdb.min.js}"></script>
 </body>

可能是什么原因?

编辑:

这是我的目录结构

enter image description here

3 个答案:

答案 0 :(得分:3)

加载jquery时似乎出错了。您的jquery是jquery-3.3.1.min.js,但您正在加载jquery-3.1.1.min.js

 <script type="text/javascript" src="/static/js/jquery-3.1.1.min.js" th:src="@{/js/jquery-3.1.1.min.js}"></script>

因此请检查jquery版本。

答案 1 :(得分:0)

directory structure

加载CSS

<link href="../static/assets/css/materialize.min.css" type="text/css"
    rel="stylesheet" th:href="@{/assets/css/materialize.min.css}"
    media="screen,projection">

加载js

<script type="text/javascript" src="../static/assets/js/materialize.min.js"
    th:src="@{/assets/js/materialize.min.js}"></script>

答案 2 :(得分:0)

这对我有用。

这是我的文件在静态文件夹中的样子:

这是我将静态文件夹中的文件包含到我的html页面中的方式:

我摆脱了路径中的静态文件夹,因为我猜测服务器知道要在静态文件夹中查找静态内容。所以我的all.min.css的路径将是。

http://127.0.0.1:8080/js/demo/all.min.css

它将在静态文件夹中搜索。

如果添加静态变量

  

{link href =“ / static / vendor / fontawesome-free / css / all.min.css” rel =“ stylesheet” type =“ text / css”}

服务器将查找

  

http://127.0.0.1:8080/static/static/js/demo/all.min.css

它将无法获得该路径

请记住,如果您使用的是Spring Security,请允许在antmatchers中使用路由。查看附件图片

如果使用Spring Security,则允许路由到静态文件夹中的文件夹: