Spark框架和相对路径

时间:2016-08-29 02:27:14

标签: java maven netbeans relative-path spark-java

我使用Spark framework创建了一个网络应用,并且我已经浏览了他们网站上的教程。目前,我正在处理他们的模板部分,但我似乎无法让项目认识到我的css和我的模板位于我的资源文件夹中。

我使用Netbeans和Maven来管理我的依赖项。

任何人都可以帮我弄清楚如何设置我的相对路径/在这种环境中适当地创建我的项目文件夹?我是Maven和Spark的新手,所以请放轻松。

1 个答案:

答案 0 :(得分:4)

静态文件:

如果您的资源目录如下所示:

resources
└───public
    ├───css
    │       style.css
    ├───html
    │       hello.html
    └───templates
            template.ftl

您可以使用staticFiles.location("/public")。这将使/public成为root staticFiles目录。

然后,您可以访问hello.html,如下所示:http://{host}:{port}/html/hello.html

如果您想在文件系统上使用外部位置,可以使用staticFiles.externalLocation(...),其工作方式与上述方法完全相同。

  

注意:staticFiles.externalLocation(...)可以设置为项目的资源目录,这意味着文件将自动刷新(对开发很有用)

可以在the spark documentation

中找到更深入的解释

配置模板引擎:

如果您已经设置了staticFiles位置,但是Spark仍然无法找到您的模板,请尝试此操作。

  

注意:这些示例适用于FreeMarker引擎,但它们应该适用于其他稍微调整的引擎。

查看examples后,默认情况下,new FreemarkerEngine()似乎在spark/template/freemarker中查找模板,不在中查找您的staticFiles位置。

您有两种选择:

1:将所有模板移动到该目录

2:配置自己的引擎,并在定义路径

时传递它
FreeMarkerEngine freemarker = new FreeMarkerEngine();
Configuration config = new Configuration();
config.setTemplateLoader(
        new ClassTemplateLoader(YOUR_CLASS.class, "/templatedir"));
freemarker.setConfiguration(config);