2017-11-07 4 views
-2

현재 내장 템플릿을 사용하는 이동 웹 서버에서 작업하고 있습니다.이동 중에 .html 템플릿을 제공 할 때 미디어가로드되지 않습니다.


현재 문제는 웹 서버를 실행할 때 올바른 파일을 제공하지만 사이트의 어떤 미디어도로드하지 않는다는 것입니다 (사진 및 글꼴 등) .html 파일 이므로 모든 미디어가로드되므로 백엔드와 관련이 있다는 것을 알고 있습니다. 여기

var templates = template.Must(template.ParseGlob("static/*.html")) 
... 
func index(w http.ResponseWriter, r *http.Request) { 
    currentTime := time.Now().Local() 
    toSend := payload{ 
     Date: currentTime.Format("01-02-2006"), 
     Status: "Active", 
    } 
    t, err := template.ParseFiles("static/index.html") 
    if err != nil { 
     log.Fatalf("Error parsing template: %v", err) 
    } 
    t.Execute(w, toSend) 
} 
... 

그리고 내 파일 경로 :

app 
|-main.go 
|-static(contains static files) 
    |-media(contains all media) 
    |-index.html 

이 어떤 매체없이 아직 필요한 모든 데이터를 완벽하게 정상적으로 템플릿을 제공 여기 내 코드입니다. 모든 도움을 주셔서 감사합니다!

+0

당신이 정적 파일을 봉사를 필요로하는 모든이 되었습니까? 나는. 실행되는'index' 외에 등록 된 다른 핸들러가 있는가? 'http.FileServer'? – Adrian

+0

아니요, 템플릿을 사용하고 있다면 필요합니까? – Ethan

+0

이것은 템플릿과 아무 관련이 없습니다. 서버 (예 : Go 프로그램)에서 HTML을로드하는 경우 서버는 HTML로 참조되는 다른 애셋 (예 : 이미지 등)도 노출해야합니다. 브라우저에서 브라우저의 HTML을 디스크에서 직접로드하면 브라우저는 동일한 방식으로 에셋을로드합니다. – Adrian

답변

0

@Adrian이 의견으로 대답하여, 단순히 html로 사용할 서버를 통해 미디어 자산을로드하지 않았습니다.

http.Handle("/media/",http.StripPrefix("/media/",http.FileServer(http.Dir("static/media")))) 

내가