以前一直使用百度自帶的網址導航,可是最近發現不能添加類別目錄了。因此想找個差很少的導航網址,一直沒有找到。css
要麼是各類彈廣告,要麼是不能本身添加網址。因而乎,就想本身作一個。 html
我也不知道有多少人跟我同樣喜歡用網址導航,這裏就介紹一下怎麼樣來用Go語言作一個極簡風格的網址導航。須要的能夠直接拿走使用。前端
源代碼:https://gitee.com/fcsvr/navilinux
目錄下面主要的文件就是css,img,js,index.html,navi.gogit
css,img,js這三個目錄就是web編程經常使用的一些資源文件web
navi.go是web服務主程序數據庫
navi.go是Go服務器主程序,代碼以下,其實就是很簡單的一段Go Web服務器的代碼,很容易理解。編程
用Go來作服務器就是很方便,不用配置什麼Nginx,Apache,幾行代碼直接運行。數組
package main import ( "fmt" "html/template" "net/http" "os" "os/signal" "regexp" "time" ) //定義路由函數數組 var mux map[string]func(http.ResponseWriter, *http.Request) type Myhandler struct{} type home struct { Title string } const ( Js_Dir = "./js/" Css_Dir = "./css/" Img_Dir = "./img/" ) func main() { //定義http服務結構 server := http.Server{ Addr: ":8002", Handler: &Myhandler{}, ReadTimeout: 100 * time.Second, } mux = make(map[string]func(http.ResponseWriter, *http.Request)) mux["/"] = index mux["/js"] = jsFile mux["/css"] = cssFile mux["/img"] = imgFile fmt.Println("Hello, this is fancygo navi!") go server.ListenAndServe() //設置sigint信號 close := make(chan os.Signal, 1) signal.Notify(close, os.Interrupt, os.Kill) <-close fmt.Println("Bye, fancygo webgame close") } func (*Myhandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { if h, ok := mux[r.URL.String()]; ok { h(w, r) return } if ok, _ := regexp.MatchString("/css/", r.URL.String()); ok { http.StripPrefix("/css/", http.FileServer(http.Dir("./css/"))).ServeHTTP(w, r) } else if ok, _ := regexp.MatchString("/js/", r.URL.String()); ok { http.StripPrefix("/js/", http.FileServer(http.Dir("./js/"))).ServeHTTP(w, r) } else if ok, _ := regexp.MatchString("/img/", r.URL.String()); ok { http.StripPrefix("/img/", http.FileServer(http.Dir("./img/"))).ServeHTTP(w, r) } } func index(w http.ResponseWriter, r *http.Request) { title := home{Title: "fancygo navi"} t, _ := template.ParseFiles("index.html") t.Execute(w, title) } func jsFile(w http.ResponseWriter, r *http.Request) { http.StripPrefix("/js/", http.FileServer(http.Dir("./js/"))).ServeHTTP(w, r) } func cssFile(w http.ResponseWriter, r *http.Request) { http.StripPrefix("/css/", http.FileServer(http.Dir("./css/"))).ServeHTTP(w, r) } func imgFile(w http.ResponseWriter, r *http.Request) { http.StripPrefix("/img/", http.FileServer(http.Dir("./img/"))).ServeHTTP(w, r) }
index.html裏面寫死了各類網站的網址,能夠根據本身的須要修改
原本也想過再也個配置工具,用來配網址名稱,再寫到數據庫中。。。
後來發現本身用的話還不如就直接修改index.html源文件,方便簡潔 瀏覽器
上一段源代碼
<body <div class="container" id="container" <aside class="left-bar" id="leftBar" <div class="title" <pFancyGo導航</p </div <nav class="nav" <ul class="nav-item" id="navItem" <li<a href="#normal" class="active"經常使用</a</li <li<a href="#study"學習</a</li <li<a href="#live"生活</a</li <li<a href="#server"server</a</li <li<a href="#linux"linux</a</li <li<a href="#tool"工具</a</li <li<a href="#go"go</a</li <li<a href="#go-book"go書籍</a</li <li<a href="#go-net"go網絡</a</li <li<a href="#go-game"go遊戲</a</li <li<a href="#devops"運維</a</li <li<a href="#security"網絡安全</a</li <li<a href="#crypto"數學和密碼</a</li <li<a href="#programe"通用編程</a</li <li<a href="#astronomy"天文</a</li <li<a href="#recruit"招聘考試</a</li </ul </nav </aside
這一段是配置網站的類配
<section class="main" <div id="mainContent" <!-- 經常使用 -- <div class="box" <a href="#" name="normal"</a <div class="sub-category" <div class="iconword"經常使用</div </div <div <a target="_blank" href="http://www.fancygo.net/"<div class="item"<div class="no-logo"FancyGo</div<div class="desc"FancyGo本身的博客</ div</div</a <a target="_blank" href="https://www.zhihu.com/"<div class="item"<div class="no-logo"知乎</div<div class="desc"知乎</div</div</a <a target="_blank" href="https://www.baidu.com/"<div class="item"<div class="no-logo"百度</div<div class="desc"百度</div</div</a <a target="_blank" href="https://www.qq.com/"<div class="item"<div class="no-logo"騰訊</div<div class="desc"騰訊</div</div</a <a target="_blank" href="https://www.sina.com.cn/"<div class="item"<div class="no-logo"新浪</div<div class="desc"新浪</div</div</a <a target="_blank" href="https://www.zhibo8.cc/"<div class="item"<div class="no-logo"直播吧</div<div class="desc"直播吧</div</div</a </div </div
而後下面都是爲每一個類別配置不一樣的網址
有兩種運行的方式
直接再本地用瀏覽器打開index.html文件
http://fancygo.net:8002/
喜歡這樣風格的能夠按照個人介紹本身作一個啊
由於我本身不太熟悉前端的技術,各位也能夠以個人爲模板作一些更加花哨的風格,我是隻會極簡風,有問題能夠聯繫我哦。