我正在使用Spark框架创建一个web应用程序,我一直在他们的网站上学习教程。目前,我正在他们的模板部分工作,但是我似乎不能让项目认识到我的css和模板在我的资源文件夹。
我使用Netbeans和Maven来管理我的依赖项。
谁能帮我弄清楚如何设置我的相对路径/创建我的项目文件夹适当在这个环境中?我对Maven和Spark都是新手,所以请慢慢来。
静态文件:
如果你的资源目录是这样的:
resources
└───public
├───css
│ style.css
├───html
│ hello.html
└───templates
template.ftl
可以用staticFiles.location("/public")
。这将使/public
成为根staticFiles目录。
您可以这样访问hello.html
: http://{host}:{port}/html/hello.html
如果您想在文件系统上使用一个外部位置,您可以使用staticFiles.externalLocation(...)
,它的工作原理与上面的基本相同。
更深入的解释可以在spark文档 中找到。注意:
staticFiles.externalLocation(...)
可以设置为项目的资源目录,这意味着文件将被自动刷新(对开发有用)
配置你的模板引擎:
如果你已经设置了staticFiles的位置,但是spark仍然找不到你的模板,试试这个
注意:这些例子是为FreeMarker引擎,虽然他们应该适用于其他引擎微调。
查看示例后,似乎默认情况下,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);