다른 주요 spark 메서드보다 먼저 mainfiles.location ("/ public")을 호출했습니다. 어떤 이유로 인해 정적 파일 디렉터리 아래의 디렉터리 중 하나만이 단축 경로. 내 템플릿 디렉토리의 파일 "public/templates"는 "/public/templates/foo.vtl"과 함께 호출해야하지만 CSS 디렉토리의 파일 인 "public/css"는 "/css/bar.css"와 함께 호출 할 수 있습니다.Spark-Java 정적 파일 위치 문제
내가 주목할 수있는 한 가지 사실은 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());
텍스트의 혼란 위의 많은 이해가되지 않았다 경우, 내 폴더 구조의 이미지입니다 내 목표 디렉토리.
spark 2.3으로 다운 그레이드하고 다시 시도하십시오. 의견을 보내주십시오. –
@Laercio 나는 2.3의 불꽃으로 다운 그레이드하고 2.3 문서에 따라 staticFiles.location() 줄을 staticFileLocation()으로 변경했지만 전체 경로 대신 단축 경로로 템플릿을로드하려고 할 때도 동일한 500 오류가 발생합니다. resources 폴더. – TheFunk
TheFunk, 대상 디렉토리 아래에있는 것을 보여줄 수 있습니까? – Andrew