我最近发现了
Yeoman,这个工具极大地促进了JS依赖并构建了生命周期管理.
此外,我使用Maven作为我的Java依赖和构建工具.我实际上正在寻求整合这两种工具,以便我充分利用这两个世界.
似乎社区已经投入了大量精力与Maven / Yeoman集成各种文章,例如:http://addyosmani.com/blog/making-maven-grunt/以及yeoman-maven插件:https://github.com/trecloux/yeoman-maven-plugin
最后,我使用Thymeleaf作为我的Spring-MVC模板解决方案.
假设以下目录布局(参见上面的yeoman-maven-plugin):
pom.xml
- src
- main
- java
- webapp
- …
- test
- ..
- yo
package.json
component.json
Gruntfile.js
- app
index.html
...
- test
...
- dist
...
我的问题是我的Thymeleaf模板应该在哪里?
>在yo / app目录下? (随后他们将被maven复制到适当的目录中)
>直接在src / main / webapp / WEB-INF / templates目录下?
例如,在AngularJS应用程序的情况下,我无法弄清楚的是,包含服务器端内容的模板/页面何时以及如何与servlet容器交互,因为Yeoman认为它们位于其app目录下…
最佳答案 如果你使用Thymeleaf作为你的
templating engine with Spring,我认为你有类似的东西
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/templates/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
</bean>
<bean id="templateEngine"
class="org.thymeleaf.spring3.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
</bean>
<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine" />
</bean>
换句话说,您的模板应驻留在ServletContextTemplateResolver属性前缀中指定的文件夹中.在上面的例子中,那是/ WEB-INF / templates.因此,这些应该在/ src / main / webapp / WEB-INF / templates中.
如果您没有使用ServletContextTemplateResolver,而是使用ClassLoaderTemplateResolver,则可以将它们放在应用程序类路径的任何位置,并在该bean的属性中指定它.还有一个FileTemplateResolver,您可以在其中指定文件系统中任何位置的绝对路径.
使用Eclipse(maven插件)构建应用程序时,拥有文件夹
/src
/main
/webapp
/WEB-INF
/templates
/some-template.html
/index.html
/java
/com
/yourcompany
/Main.java
/resources
/some-properties.properties
maven会生成以下内容
/WEB-INF
/templates
/some-template.html
/index.html
/classes
/com
/yourcompany
/Main.class
/some-properties.properties
作为一个扩展的.war并提供给你的servlet容器,例如. Tomcat的.