Страница Freemarker не может включать CSS-файлы - PullRequest
1 голос
/ 29 марта 2012

Я использую Spring 3, конфигурацию на основе Java, с BootStrap.

Я загрузил загрузчик и поместил css и js в каталог ресурсов.

Проблема, которую я не могуиспользуйте эти .css со страницы freemarker.Однако я импортировал их.

В журнале Tomcat написано:

"ПРЕДУПРЕЖДЕНИЕ: не найдено сопоставление для HTTP-запроса с URI [/springway/resources/css/bootstrap-responsive.css]в DispatcherServlet с именем 'spring' "

Directory:

> -SpringWay
>       -src
>            - main
>                   -webapp
>                           -resources
                            -WEB-INF
                                 -welcome.ftl
                                 -springway.ftl     

welcome.ftl:

[#ftl /]
[#include "springway.ftl" /]


<ul class="breadcrumb">
  <li>
    <a href="[@spring.url '/test'/]">Test</a> <span class="divider">/</span>
  </li>
  <li>
    <a href="#">Library</a> <span class="divider">/</span>
  </li>
  <li class="active">Data</li>
</ul>

springway.ftl:

[#ftl/]
[#import "spring.ftl" as spring /]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

    <title>

    </title>

   <link href="[@spring.url '/resources/css/bootstrap-responsive.css'/]" rel="stylesheet" type="text/css" media="screen"/>
    <link href="[@spring.url '/resources/css/bootstrap-responsive.min.css'/]" rel="stylesheet" type="text/css" media="screen"/>
    <link href="[@spring.url '/resources/css/bootstrap.css'/]" rel="stylesheet" type="text/css" media="screen"/>
    <link href="[@spring.url '/resources/css/bootstrap.min.css'/]" rel="stylesheet" type="text/css" media="screen"/>

    <script src="[@spring.url '/resources/js/bootstrap.js'/]" type="text/javascript"></script>
    <script src="[@spring.url '/resources/js/bootstrap.min.js'/]" type="text/javascript"></script>
  </head>

<body ></body>
</html>

WebAppConfig:

public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }

1 Ответ

0 голосов
/ 12 августа 2014

Похоже, ваша проблема в том, что spring пытается ответить с помощью весеннего сервлета, но ваши ресурсы не должны быть его частью, тогда вам нужно добавить путь к ресурсам в конфигурацию Spring. Я добавлю конфигурацию xml, которую вы должны добавить, основываясь на пути, где ваши ресурсы будут

<mvc:resources mapping="/resources/**" location="/resources/" cache-period="31556926"/>

где

Атрибут: местоположение Расположение ресурса, из которого будет обслуживаться статическое содержимое, указанное в шаблоне Spring Resource. каждый Расположение должно указывать на действительный каталог. Несколько мест могут быть указаны в виде списка через запятую, и местоположения будут проверены для данного ресурса в указанном порядке. Например, значение "/, classpath: / META-INF / public-web-resources / "позволит обслуживать ресурсы как из веб-приложения root и из любого JAR-файла на пути к классам, содержащего каталог / META-INF / public-web-resources /, с ресурсы в корне веб-приложения имеют приоритет.

Атрибут: отображение Шаблон сопоставления URL-адресов в текущем контексте сервлета, используемый для обслуживания ресурсов из этого обработчик, такой как "/ resources / **"

Надеюсь, это поможет вам

...