我正在为我的项目使用spring,并且我将所有模板文件排除在另一个“html-Project”之外。我之所以这样做,是因为我可以在没有任何重新部署的情它工作正常,spring应用程序找到所有模板。但现在,模板无法找到任何css或js文件。该模板尝试在我的spring-project中搜索文件,但它们包含在html项目中。我怎么解决它?我需要像我认为的相对路径。
项目
的 SpringApp
---- lib
---- src
--------主要
------------ java
---------------- com.example.test
--------------------控制器
------------------------ ShowIndex.java
------------资源
------------ webapp
--------测试
的 HTML的模板
---- lib
---- src
--------主要
------------ java
------------资源
------------模板
---------------- css
-------------------- bootstrap.min.css
---------------- js
-------------------- bootstrap.min.js
----------------图片
---------------- index.ftl
---------------- test.ftl
--------测试
ShowIndex.java的内容
@RequestMapping(value = "/index", method = RequestMethod.GET)
public String index(ModelMap model) {
model.put("prename", "Hans-Peter");
return "index";
}
index.ftl的HeaderContent
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="./css/bootstrap.min.css">
<link rel="stylesheet" href="./css/zeus.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
有什么想法吗?
我用:
JAVA
Spring WebMVC
Freemarker作为TemplateEngine
答案 0 :(得分:0)
将您的css
,js
,images
放入src/main/webapps
文件夹,与模板ftl
文件分开。
修改强>
使用Servlet 3.0,您有另一种选择,但可能无法在所有容器中运行......
META-INF/resources
文件夹js, css, images
等放到此文件夹例如,我创建了一个assembly.xml
文件来自动完成这项工作
<assembly>
<id>bin</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>/</outputDirectory>
<excludes>
<exclude>**</exclude>
</excludes>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>target/classes</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>**/*.class</include>
</includes>
<excludes>
<exclude>**/DefaultController.class</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>WebContent</directory>
<outputDirectory>META-INF/resources</outputDirectory>
<includes>
<include>/WEB-INF/jsp/**</include>
</includes>
</fileSet>
<fileSet>
<directory>WebContent</directory>
<outputDirectory>META-INF/resources</outputDirectory>
<includes>
<include>js/**</include>
<include>plugins/**</include>
</includes>
</fileSet>
</fileSets>
</assembly>
使用maven建立mvn package
时,此文件有效。
PS :
在maven pom.xml
:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>