LINUX.ORG.RU

go, static files

 , ,


0

2

Доброго.

Возникла мерзкая ашыбка:

Выдаёт в консоль браузера:
«The stylesheet http://127.0.0.1:8000/static/css/mystyle.css was not loaded because its MIME type, “text/html”, is not “text/css”.
Ругается и на js.

<link href="/static/css/mystyle.css" rel="stylesheet">
Сервер завожу через Go (v 1.9)
package main

import (
	"fmt"
	"html/template"
	"net/http"
)


func indexHandler(w http.ResponseWriter, r *http.Request) {
	tp := template.Must(template.ParseGlob("templates/*.*"))
	tp.ExecuteTemplate(w, "index", nil)
}

func main() {
	fmt.Println("Listening port: 8000")
	//http.Handle("/static/", http.FileServer(http.Dir("/static/")))
	http.HandleFunc("/", indexHandler)

	http.ListenAndServe(":8000", nil)
}

Интернет не помогает.

Deleted
Ответ на: комментарий от menangen

Их навалом. На любой вкус и цвет, но разрабатывать можно используя только стандартную библиотеку. Она у Golang крутая.

resurtm ★★★
()
Ответ на: комментарий от onetoomany

И с ним беда. Мало того, я получаю эти файлы (код 200 в консоли браузера). Но браузер пишет эту ошибку.

Deleted
()
Ответ на: комментарий от anonymous

Дорогой Анон. Я спецом подключаю bootstrap для проверки. Ругается...

Deleted
()

Гуглится и проверяется за 1 мин:

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

anonymous
()

Тут возникает другой вопрос: зачем сервить статику через сервер го? На го пили рест, а все шаблоны канпеляй ангуляром, реактом, вуем и сервь через nginx.

nikolnik ★★★
()
Ответ на: комментарий от Deleted

Такое ощущение, что не видит файл.

Deleted
()

А может кто-то привести пример (я воспроизведу у себя) минимального файла на go и файла html? Чтобы работало?

Deleted
()
Ответ на: комментарий от Deleted

Вот этот анон 21.11.2017 11:24:07 правильно подсказал.

package main

import (
	"fmt"
	"log"
	"net/http"
)

func index(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, `<!DOCTYPE html>
<html>
<head><link rel="stylesheet" href="/static/main.css"></head>
<body>
hello
</body>
</html>
`)
}

func main() {
	http.HandleFunc("/", index)
	http.Handle("/static/", http.StripPrefix("/static", http.FileServer(http.Dir("./static/"))))
	log.Fatal(http.ListenAndServe(":8000", nil))
}
onetoomany
()
Ответ на: комментарий от Deleted

Твой же пример, с одной изменённой строкой.

package main

import (
    "fmt"
    "html/template"
    "net/http"
)


func indexHandler(w http.ResponseWriter, r *http.Request) {
    tp := template.Must(template.ParseGlob("templates/*.*"))
    tp.ExecuteTemplate(w, "index", nil)
}

func main() {
    fmt.Println("Listening port: 8000")
    http.Handle("/static/", http.StripPrefix("/static", http.FileServer(http.Dir("./static/"))))
    http.HandleFunc("/", indexHandler)

    http.ListenAndServe(":8000", nil)
}
проверил, работает.

anonymous
()
Ответ на: комментарий от anonymous

Или ребёнок кабанчика один из тех кто заблокировал анонимное братство? :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.