2

我正在使用jTwig 模板,我有以下模板:

<!DOCTYPE HTML>
<html>

  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    {% block title %}
      <title>{{ title }}</title>
    {% endblock %}

    <!-- Bootstrap stylesheet-->
    <link rel="stylesheet" href="{{webappRoot}}/apple-store/assets/css/bootstrap.min.css">

    <!-- Custom favicon -->
    <link rel="shortcut icon" href="{{webappRoot}}/apple-store/assets/img/favicon.png?v=2" />
  </head>

  <body>

    <div class="container">

         {% block content %}{% endblock %}

    </div>

    <script src="{{webappRoot}}/apple-store/assets/js/jquery-1.11.1.min.js"></script>
    <script src="{{webappRoot}}/apple-store/assets/js/bootstrap.min.js"></script>

  </body>

</html>

apple-store我的项目的名称在哪里,webappRoot我认为是 spring 的一个变量,所以这里的完整路径将是http://localhost:8080/apple-store/assets/<some asset>- 因为webapp = http://localhost:8080.

有更好的方法来做到这一点吗?也许像这样的一种“变量”webappRoot会显示我的项目名称或路径http://localhost:8080/apple-store

4

1 回答 1

1

我不知道 spring 是否有这种变量,我不能告诉你,但我可以告诉你一些关于 jTwig 的酷。它可以让您找到您的资产在哪里,如何找到?你必须有这样的东西:

<beans:bean class="com.lyncode.jtwig.mvc.JtwigViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".twig" />
</beans:bean>

在你的applicationContext.xmlor上servlet-context,你可以这样做:

<beans:bean class="com.lyncode.jtwig.services.impl.assets.BaseAssetResolver">
</beans:bean>

这告诉你你的观点,所有资产都在下面http://localhost/apple-store,所以在你的观点中你必须把这个:

<!-- Bootstrap stylesheet-->
<link rel="stylesheet" href="{{ asset 'assets/css/bootstrap.min.css' }}">

就是这样,干杯!

哦,如果您的资产不在 下assets/<url>,假设您的资产在 下public/assets/<url>,您可以像这样更改配置:

<beans:bean class="com.lyncode.jtwig.services.impl.assets.BaseAssetResolver">
    <beans:property name="prefix" value="/public/" />
</beans:bean>
于 2014-12-10T22:54:28.330 回答