在thymeleaf模板中未加载静态资源

时间:2014-11-09 08:20:23

标签: javascript css spring thymeleaf

我是春天百里香的新手,我有一个网页,分为标题,正文和页脚,但当我尝试包含标题时,css和js不会加载到网页中。

我的文件夹结构如下所示:

 main
  ├───  java
  ├───  resources
  ├───  web-resources
  │   ├───  css
  │   ├───  jss
  │   └───  views
  └───  webapp
      ├───  META-INF
      └───  resources
          ├───  css
          ├───  jss
          └───  views

我的百万美元配置是:

<bean id="templateResolver"
      class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="prefix" value="/resources/views/"/>
    <property name="suffix" value=".html"/>
    <property name="templateMode" value="HTML5"/>
    <!-- Template cache is set to false (default is true). -->
    <property name="cacheable" value="false"/>
</bean>

<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver"/>
</bean>

<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine"/>
</bean>

我的标题css看起来像这样:

<head>
    <meta charset="utf-8"/>
    <title>test</title>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>

    <link type="text/css" href="../../css/bootstrap-min.css" rel="stylesheet"
          th:href="@{/resources/css/bootstrap-min.css}"/>

    <link type="text/css" href="../../css/bootstrap-theme-min.css" rel="stylesheet"
          th:href="@{/resources/css/bootstrap-theme-min.css}"/>

    <script src="../../js/jquery-1.11.1.min.js"></script>
    <script src="../../js/bootstrap-min.js"></script>
</head>

主要的HTML是:

<head>
    <title>Hello</title>

    <link type="text/css" href="../css/bootstrap-min.css" rel="stylesheet"
          th:href="@{/resources/css/bootstrap-min.css}"/>

    <link type="text/css" href="../css/bootstrap-theme-min.css" rel="stylesheet"
          th:href="@{/resources/css/bootstrap-theme-min.css}"/>

    <script src="../js/jquery-1.11.1.min.js" th:src="@{/resources/js/jquery-1.11.1.min.js}"></script>
    <script src="../js/bootstrap-min.js" th:src="@{/resources/js/bootstrap-min.js}"></script>
</head>
<body>
<div th:include="fragments/header :: header"></div>
</body>

但是当我请求页面时,仍会显示404 for css和jss。

2 个答案:

答案 0 :(得分:0)

不要重复片段中的head元素。你目前正在做的是尝试在主体中追加一个重复的头部元素。像在jsp导入中一样,仅在片段中包含标题的正文部分。

答案 1 :(得分:0)

您可以更改:

<script src="../../js/bootstrap-min.js"></script>

<script th:src="@{/resources/js/bootstrap-min.js"></script>