我正在使用 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
我认为是来自 spring 的变量,所以这里的完整路径将是 http://localhost:8080/apple-store/assets/<some asset>
-- 因为 webapp = http://localhost:8080
.
有更好的方法吗?也许是一种像 webappRoot
这样的“变量”这会显示我的项目名称或路径 http://localhost:8080/apple-store
?
最佳答案
我不知道 spring 是否有那种变量,我不能告诉你,但我可以告诉你一些关于 jTwig 的酷事。它可以让你找到你的 Assets 在哪里,如何?你必须有这样的东西:
<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>
这告诉您您的观点,所有 Assets 都在 http://localhost/apple-store
下,因此在您看来,您必须这样写:
<!-- Bootstrap stylesheet-->
<link rel="stylesheet" href="{{ asset 'assets/css/bootstrap.min.css' }}">
就是这样,干杯!
哦,万一你的 Assets 不在 assets/<url>
之下呢? ,假设您的 Assets 在 public/assets/<url>
下,您可以像这样更改您的配置:
<beans:bean class="com.lyncode.jtwig.services.impl.assets.BaseAssetResolver">
<beans:property name="prefix" value="/public/" />
</beans:bean>
关于java - 如何在 View 中获取 Spring 项目的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27409507/