如何有条件地同时重定向和使用资产提供HTML

时间:2018-10-02 10:35:38

标签: http go

问题

当我要提供静态HTML时,资产(CSS,JavaScript)的MIME类型也为text/html,这会导致错误。

方法

./assets/内部是index.html,CSS和JavaScript文件。

const rootHtml = "./assets/index.html"

func main() {
    http.HandleFunc("/", root)

    log.Fatal(http.ListenAndServe(":3000", nil))
}

func root(w http.ResponseWriter, r *http.Request) {
    if false {
        http.Redirect(w, r, "/other-route/, http.StatusTemporaryRedirect)
    } else {
        http.ServeFile(w, r, rootHtml) // This should handle the index.html and all other resources
    }
}

资产目录:

assets/
|-- js/
|-- css/
|-- index.html

0 个答案:

没有答案