iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 3
0
Modern Web

BeeGo系列 第 3

Project Layout 與設定

使用 tree 指令看一下產出的專案目錄架構

$ cd $GOPATH/src/my
$ tree hello
hello
├── conf
│   └── app.conf
├── controllers
│   └── default.go
├── hello
├── main.go
├── models
├── routers
│   └── router.go
├── static
│   ├── css
│   ├── img
│   └── js
│       └── reload.min.js
├── tests
│   └── default_test.go
└── views
    └── index.tpl

10 directories, 8 files

目錄的名稱蠻容易懂的,

  • conf:放置設定檔的地方
  • controllers:就主要的控制邏輯
  • main.go:主要的入口,這不太需要去修改。
  • models:放置 ORM model 的資料夾,目前是空的。
  • routers:路由,目前只有一個 router.go,定義了 '/' 的處理是由 controllers/default.go 裡的 MainController 去處理。
  • static:放置 javascript/css/圖片等靜態檔案
  • tests:單元測試的程式放在這裡
  • views:放樣板的資料夾

接著我們來看環境設定的部份,一般來說都會有 development 跟 production 的環境,設定上可以依據環境來做區別,預設的設定就只有 listen port 8080,所以這邊我們做一點調整,也是為了未來的佈署鋪路。

查了 BeeGo 的文件跟原始碼以後,發現只能使用設定檔來設置,不能像 Django + django-environ 那樣,可以透過讀取環境變數或設定檔的方式來設置。這部份之後可能要再找找看有沒有更好的方法。

BeeGo 環境設定檔的部份,可以透過環境變數 BEEGO_RUNMODE 來指定要使用哪一個環境:

cd conf

# 做 production 環境,檔名必須以 .app.conf 結尾
cp app.conf prod.app.conf
# 修改 prod.app.conf ,將 port 改為 80,再存檔
cd ..
sudo BEEGO_RUNMODE=prod ./hello
# 會看到 http server Running on http://:80 的字樣

之後,production 環境的設定就只要修改 prod.app.conf ,而開發環境的設定就修改 app.conf 就好。因為 BeeGo 的設定支援 include,仔細想了想之後,conf 下的檔案我決定先改成這樣:

├── conf
│   ├── app.conf
│   ├── base.conf
│   ├── dev.app.conf
│   └── prod.app.conf

# 作為預設的設定
# conf/app.conf
include "dev.app.conf"

# conf/dev.app.conf
include "base.conf"
httpport = 8080
runmode = dev
enableerrorsshow = true

# conf/dev.prod.conf
include "base.conf"
httpport = 80
runmode = prod
enableerrorsshow = false
enablegzip = true
enablexsrf = true
xsrfexpire = 60

# conf/base.conf
appname = hello

BeeGo 可以調整的設定蠻多的,詳細的部份可以參考 BeeGo Configuration

Project Layout 與設定


上一篇
BeeGo Getting start
下一篇
ORM(1)
系列文
BeeGo30

尚未有邦友留言

立即登入留言