我在main方法之前调用了staticfiles.location(“/ public”),在任何其他spark方法之前,由于某种原因,静态文件目录下只有一个目录正在使用缩短的路径。我的模板目录“public / templates”中的文件必须使用“/public/templates/foo.vtl”调用,但我的CSS目录中的文件“public / css”可以使用“/css/bar.css”调用
我可以注意到的一点是,css文件的缩写路径最初位于我的.java文件中,但现在位于我的一个模板文件中。它仍然可以从模板文件中运行。为什么我的公共文件夹下没有识别我的模板文件夹,但是我的css文件夹是?
我正在为这个项目使用IntelliJ的想法。
这是我的代码,虽然它几乎与Spark网站上的布局教程代码相同。几周前我和Netbeans有类似的问题,切换IDE似乎解决了这个问题。这可能是我的IDE没有更新某种资源文件的问题吗?我很难过!这不是一个大问题,但我宁愿知道为什么它不起作用而不是继续保持无知。
public static void main(String[] args) {
staticFiles.location("/public");
String layout = "public/templates/layout.vtl";
//secure("public/keystore.jks", "password", null, null);
get("/", (req, res) -> {
HashMap model = new HashMap();
model.put("template", "public/templates/main.vtl");
return new ModelAndView(model, layout);
}, new VelocityTemplateEngine());
get("/page2", (req, res) -> {
HashMap model = new HashMap();
model.put("template", "public/templates/main2.vtl");
return new ModelAndView(model, layout);
}, new VelocityTemplateEngine());
这是我的文件夹结构的图像,以防上面的文字混乱没有多大意义:
编辑:每个请求,以下是我的目标目录的内容。