Reputation: 11870
I've built a rudimentary layout based site in golang with beego, I've split my page layout into a file called views/_layout.tpl
and referenced it as below from a controller.
func (c *BuyerController) Get() {
...
c.Layout = "_layout.tpl"
c.TplName = "buyers.tpl"
}
The layout has in the middle of it the required line:
{{.LayoutContent}}
The strange thing is that when I run the web server with IDEA/IntelliJ it renders just fine in the browser, but when I run it from the console with bee run
all the html from the layout file is missing and just the contents of buyers.tpl
is shown.
I've run each build of the compiled app and it the same happens, the one built by IntelliJ works, and the one built by bee run
doesn't.
As far as I can see I've followed http://beego.me/docs/mvc/view/view.md#layout-design
Any ideas what I've done wrong, or any clues how to figure it out? Thanks.
Upvotes: 4
Views: 488
Reputation: 11870
GOPATH
. Again. Typical that I post a bounty and then promptly figure it out eh?
IntelliJ keeps it's own copy of the GOPATH
information in .idea/*.iml
<orderEntry type="library" name="GOPATH <web>" level="project" />
I'm running gvm to manage go versions, and in order to have packages installed in the right place globally my go path is as follows:
$ echo $GOPATH
/home/tim/.gvm/pkgsets/go1.4.3/global
This however means I'd have to move my src every time I switched go versions. To get round that I've used gvm linkthis
to symlink my src into the gvm folder so that my source is in the GOPATH as go expects to find it. The downside of that is that I have to cd
to $GOPATH/src/project/
before hitting bee run
and not just run it from the real location (which is what I'd done). Without that it finds the .go files but not the layout. I'm not 100% sure why but it makes some sense.
It seems like a lot of yak shaving to make it all work so maybe I'm missing something?
Upvotes: 1