RevelでPipline SASSやCoffeeScriptやらちゃんと管理するらしいtrainとかいうやつ 設定編

眠い
https://github.com/revel/revel/issues/620

project_name/init.go

func init() {
  revel.Filters = []revel.Filter{
        AssetsFilter,
        revel.PanicFilter,             // Recover from panics and display an error page instead.
        revel.RouterFilter,            // Use the routing table to select the right Action
        revel.FilterConfiguringFilter, // A hook for adding or removing per-Action filters.
        revel.ParamsFilter,            // Parse parameters into Controller.Params.
        revel.SessionFilter,           // Restore and write the session cookie.
        revel.FlashFilter,             // Restore and write the flash cookie.
        revel.ValidationFilter,        // Restore kept validation errors and save new ones from cookie.
        revel.I18nFilter,              // Resolve the requested language
        revel.InterceptorFilter, // Run interceptors around the action.
        revel.CompressFilter,    // Compress the result.
        revel.ActionInvoker,     // Invoke the action.
  }

  train.ConfigureHttpHandler(nil)
  // これはトラップ
  // http.ListenAndServe(":3000", nil)
  revel.TemplateFuncs["javascript_tag"] = train.JavascriptTag
  revel.TemplateFuncs["stylesheet_tag"] = train.StylesheetTag
}

// Server /assets with [train]
var AssetsFilter = func(c *revel.Controller, fc []revel.Filter) {
    path := c.Request.URL.Path
    if strings.HasPrefix(path, "/assets") {
        train.ServeRequest(c.Response.Out, c.Request.Request)
    } else {
        fc[0](c, fc[1:])
    }
}
$ mkdir project_name/assets
$ mkdir project_name/assets/javascripts
$ mkdir project_name/assets/stylesheets

リリースするまでは、trainコマンドは使わない。
使うと、public/assetsが出来て、productionモードになってうまく動かぬ_| ̄|○