我使用jTwig templates,我有以下一个:
<!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
是我认为的春天变量,因此这里的完整路径为http://localhost:8080/apple-store/assets/<some asset>
- 因为webapp = http://localhost:8080
。
有更好的方法吗?也许是一种变量&#34;比如webappRoot
,它会为视图提供项目名称或路径http://localhost:8080/apple-store
?
答案 0 :(得分:1)
我不知道春天是否有这种变量,我无法告诉你这件事,但我可以告诉你一些关于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.xml
或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>