【Go web開發之revel+mgo】第11章 部署到heroku上

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

示範地址   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/


百度統計什麼的自己去搞哦
至此,了卻我心中的遺憾了,舒服多了。。。。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.