2016-07-28 3 views
0

나는 Spark를 실행하는 다음과 같은 간단한 메인 클래스를 가지고있다.get request를 사용할 때 spark 프레임 워크에서 정적 경로가 변경되는 이유는 무엇입니까?

Spark.port(4570);  
    final Configuration configuration = new Configuration(new Version(2, 3, 0)); 
    configuration.setClassForTemplateLoading(SparkHandler.class, "/"); 

    Spark.staticFileLocation("/public"); 

    Spark.get("/", (request, response) -> { 

     // read patterns 

     // attributes for web-interface. 
     Map<String, Object> attributes = new HashMap<>(); 
     attributes.put("data", "someData"); 

     return new ModelAndView(attributes, "timeline.ftl"); 
    } , new FreeMarkerEngine()); 

모든 것이 좋습니다. http://localhost:4570/에 갈 때 요청한 웹 페이지가 있습니다!

지금 바로 그 코드 /a/b/c에 GET 문에 경로를 변경하지만 실행

: 지금 예에 가면

Spark.port(4570); 
    final Configuration configuration = new Configuration(new Version(2, 3, 0)); 
    configuration.setClassForTemplateLoading(SparkHandler.class, "/"); 

    Spark.staticFileLocation("/public"); 

    Spark.get("https://stackoverflow.com/a/b/c", (request, response) -> { 

     // read patterns 

     // attributes for web-interface. 
     Map<String, Object> attributes = new HashMap<>(); 
     attributes.put("data", "someData"); 

     return new ModelAndView(attributes, "timeline.ftl"); 
    } , new FreeMarkerEngine()); 

http://localhost:4570/a/b/c, 이전에 발견 할 수있는 많은 리소스가 더 이상 사용할 수 없다는 메시지를 반환합니다. 예 :

은 INFO 28/07/16 14 : 45 : 03 :

그러나 스파크 매핑되지 않은 [/a/b/vis/vis.js 상기 라우트 요청은, 그것이 정확하게 /public/vis/vis.js 위치에 있습니다.

get 명령은 내 정적 디렉토리를 변경합니까? 아니면 내가 여기서 이해할 수없는 뭔가가 여기에있다.).

답변

1

답변을 찾았습니다!

내 freemarker/html 파일에서 필자는 다음과 같은 상대적인 부분을 사용했습니다. 절대 경로로 변경

<script src="./vis/vis.js"></script> 

문제 해결 : 바보 같은 질문에 대한

<script src="/vis/vis.js"></script> 

죄송합니다,하지만 어쩌면 다른 사람을 도움이됩니다.