這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
示範地址 http://gblog-revel.herokuapp.com/
1.申請mongohq
關於如何在註冊heroku和mongohq帳號,我在之前的blog裡面有說明,http://blog.csdn.net/joveth/article/details/19999535這裡簡單的說一下,還記得我們的models/dao.go檔案裡的NewDao方法中被注釋的那一行嗎?
session, err := mgo.Dial("mongodb://omind:jov.omind@widmore.mongohq.com:10000/ominds")
對,這個就是我們在mongohq申請的免費的db服務,很好用(雖然響應優點慢)。這是mongohq的登入位址:https://bridge.mongohq.com/signup (這個網站很卡,大家要有耐心的去使用它,你們懂的,牆什麼的。。。)註冊後,選擇一個 Free 的資料庫類型,並給資料庫起一個名字,見:
圖中,紅色框部分,為要輸入和可選的兩個free,建立好後進入下面的版面:
首先,我們需要給資料庫添加一個使用者。點擊紅色框中的 Admin ,然後點擊 Users 進入使用者管理頁面。在 username 和 password 處分別填寫使用者名稱和密碼:
db.addUser('omind','jov.omind')
點擊 Add user 添加使用者。
這樣我們的db倉庫已經建好 了,怎麼 使用呢?請看:
紅色框內的URI為我們要使用的內容將其中的user和password換成剛剛添加的使用者即可。(上面的黑色框內容,是通過控制台連結到mongohq,如果是windows環境,切換到mongodb/bin目錄下執行即可使用遠端db了 )
將代碼中的字串替換成你自己的uri,並把這段代碼的注釋開啟,把本地session注釋掉。
好。
2.申請heroku
heroku也是一個免費的服務,提供我們做示範用。當然了,一個賬戶只能有5個app,我只能說呵呵呵了。
登入位址:https://www.heroku.com/
下面我們需要安裝Heroku Toolbelt 下載地址:https://toolbelt.heroku.com/ 。
注意:假如你的電腦上已經安裝了 Git ,那麼在安裝的時候選擇 Custom Installation 並去掉安裝 Git 的選項,否則選擇 Full Installation 。
安裝成功後,開啟 Git Bash ,輸入 heroku login ,然後輸入在 Heroku 註冊的帳號和密碼進行登入。Git 會檢測是否有 SSH 金鑰,如果有,則使用此密鑰並上傳,如果沒有,則建立一個密鑰並上傳。(你也可以使用heroku keys命令查看有沒有keys,如果沒有,可以使用heroku add:keys添加keys)
在項目的根目錄下,建立.godir檔案,比如我的GBlog/.godir 新增內容:
GBlog
對,就是你的項目名稱。
開啟 Git Bash ,切換到你的項目目錄下面(windows環境,如果要切換磁碟使用 cd e: 命令),輸入:
git init git add .godir *git commit -m "create app"heroku create -b https://github.com/robfig/heroku-buildpack-go-revel.gitgit push heroku masterheroku open
沒錯,以上命令是讓我們在herokuapp上部署了一個應用,關於其中的buildpack可以參考這裡:https://github.com/robfig/heroku-buildpack-go-revel (話說這個builpack有很多版本的,最後只有這個大哥做的可以正常使用,大哥。。。。類牛滿面啊)
可是這樣,部署完成之後呢,在瀏覽器裡面訪問,發現居然報錯了,什麼原因呢,這也正是博主與之奮鬥一天的bug啊,總算在耐心被磨滅之前解決了,不然真心想吐,還記得我們在最新blog提醒的時候嗎(blog的第9章),在header.html裡面有一段代碼:
{{if .recentCnt}} {{if gt .recentCnt 0}} <span class="navbar-news " title="最近1小時有{{.recentCnt}}個更新">{{.recentCnt}}</span> {{end}} {{end}}
其中if gt 是revel內建的模板方法,你妹啊,我也是以為你內建的的東西,肯定會打包編譯進去把,沒想到啊,這個原因整整浪費了我一天時間(按照代碼一段一段去排查的,根本沒想到header會有問題),那麼怎麼解決呢,自己加就行了唄。
在init.go的方法裡面像之前一樣加入:
revel.TemplateFuncs["gt"] = func(a, b int) bool { return a>b }
好 ,我們在次提交:
git add .git commit -m "update"git push heroku master
這次再開啟看看,終於好了啊。
那麼有同學可能會說,呀,它給我們建立的名字很挫,我要換一個,怎麼辦呢?你可以登入heroku的網站,找到你的app,然後在setting裡面修改名稱就可以了(話說,修改了名稱之後,我的app有變更了,再次提交不行了,怎麼辦,刪了重傳,再修改名稱。)
示範地址 http://gblog-revel.herokuapp.com/
百度統計什麼的自己去搞哦
至此,了卻我心中的遺憾了,舒服多了。。。。