Я вызвал staticfiles.location("/public") из моего основного метода перед любым другим методом искры, и по какой-то причине только один из каталогов в каталоге статических файлов работает с сокращенным путем. Файл в моем каталоге шаблонов "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());
Вот изображение моей структуры папок, на случай, если эта путаница текста выше не имеет особого смысла:
Изменить: по запросу следующее содержимое моего целевого каталога.