写了一个简单的登录页面,可是为什么加载不了外部CSS样式呢?可有人知道原因?
程序代码:
package main
import (
"fmt"
"html/template"
"net/http"
"strings"
"log"
_ "github.com/go-sql-driver/mysql"
"database/sql"
)
type WebMux struct{
}
func (p *WebMux) ServeHTTP(w http.ResponseWriter,r *http.Request){
switch r.URL.Path{
case "/":
sayHello(w,r)
return
case "/login":
login(w,r)
return
default:
http.NotFound(w,r)
return
}
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
func sayHello(w http.ResponseWriter,r *http.Request){
r.ParseForm()
fmt.Println(r.Form)
fmt.Println("path:",r.URL.Path)
fmt.Println("scheme:",r.URL.Scheme)
fmt.Println(r.Form["url_long"])
for k,v:=range r.Form{
fmt.Println("key:",k)
fmt.Println("val:",strings.Join(v," "))
}
fmt.Fprintf(w,"Hello,welcome to Go web world!")
}
func login(w http.ResponseWriter,r *http.Request){
fmt.Println("method:",r.Method)
if r.Method=="GET" {
t,_:=template.ParseFiles("gtpl/login.html")
t.Execute(w,nil)
} else {
r.ParseForm()
fmt.Println("username:",r.Form["username"][0])
fmt.Println("password:",r.Form["password"][0])
//连接数据库
dbConnStr:="xoops:xoops@tcp(dbserver:3306)/xoops?charset=utf8"
db,err:=sql.Open("mysql",dbConnStr)
defer db.Close()
rows,err:=db.Query("select * from auth_user where password=? and username=?",r.Form["password"][0],r.Form["username"][0])
checkErr(err)
if rows.Next() {
var username,password,usercnname string
rows.Scan(&username,&password,&usercnname)
fmt.Fprintf(w,"Hello,%s",usercnname)
} else {
fmt.Fprintf(w,"Ooooops!Invalid username or password.")
}
}
}
func main(){
//http.HandleFunc("/",sayHello)
//err:=http.ListenAndServe(":9090",nil)
mux:=&WebMux{}
err:=http.ListenAndServe(":9090",mux)
if err!=nil {
log.Fatal("ListenAndServe:",err)
}
}
login.html页面上使用<link rel="stylesheet" type="text/css" href="login.css"/>外联样式表
可是程序执行时不会加载样式。
更多评论
你的css引用使用的是相对路径,这个得看你的目录结构了。可以参考 [studygolang](https://github.com/studygolang/studygolang/blob/master/websites/code/studygolang/template/common/base.html) 的写法
#2