2016-09-20 20 views
-1

私は基本的なGoサーバで1ページをレンダリングしています。ただし、ページが読み込まれると、静的アセット(style.css、app.js)はそれぞれのタイプではなくMIMEタイプ 'text/html'でレンダリングされ続けるため、静的アセットを取得できません。GolangサーバでのMIMEのレンダリングエラーのエラー

私はページをロードするとき、私はこのエラーを取得:

リソースは、スタイルシートとして解釈されず、MIMEタイプtext/htmlので転送:「http://localhost:8080/static/style.css

を私は問題が関係している知っていますHTTPヘッダーを開き、適切なContent-Typeを設定します。しかし、私は、ページ自体が取得する資産に対してこれを行う方法がわかりません。誰もがこれで私を助けることができますか?

func renderTemplate(w http.ResponseWriter, r *http.Request, msg *Message, path string) { 
    t, err := template.ParseFiles(path) 
    if err != nil { 
     http.NotFound(w, r) 
    } 
    // problem is here I think 
    err = t.Execute(w, msg) 
    if err != nil { 
     fmt.Println("Error writing to response writer\n\b", err) 
    } 
    return 
} 

func mainHandler(w http.ResponseWriter, r *http.Request) { 
    renderTemplate(w, r, &Message{Title: "What the Fuck is Open?", Text: "Would you like to sort by prominence or distance?"}, HOME) 
    return 
} 

答えて

2

静的資産要求を処理するassetsHandlerを作成します。私は資産を処理するにはどうすればよい>text/javascript

...

+0

-

w.Header().Set("Content-Type", "text/css") 

.css - >text/css

.jsを:

// if you are using grilla/mux router := mux.NewRouter() router.HandleFunc("/static/"+'{path:\S+}', AssetsHandler) 

資産のサフィックスに基づいてContent-Type Headerを追加リクエスト?それをどのようにルーティングするか分からない。 – Scorpio750

+0

私の答えに例を追加してください。 – jsxqf

+0

ありがとう、私はそれを試してみましょう。 – Scorpio750

関連する問題