我正在尝试在heroku中部署一个revel应用程序,我有这个文件夹结构:
+Base
+app
+controllers
-app.go
+views
+models
-user.go
+routes
+conf
+public
+test
.godir
在app.go
中,我尝试包含模型和路线:
import("base/app/models")
我可以在本地运行应用,然后我可以使用models.User
。我试图通过很多方法在heroku中导入这些本地包:
import("../models")
import("../models/user")
import("./app/models")
import("./base/app/models")
我现在不记得所有的尝试,但我很长时间都在尝试,而且我不知道该怎么做。
我在本地使用1.6和1.4当我推。这是我运行git push heroku master
Counting objects: 93, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (86/86), done.
Writing objects: 100% (93/93), 11.68 KiB | 0 bytes/s, done.
Total 93 (delta 50), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Revel app detected
remote: -----> Using go1.4
remote: -----> Running: go get -tags heroku ./...
remote: can't load package: /tmp/build_02574263f0810eec437968b2e73f635d/.go/src/base/app/controllers/gorp.go:10:2: local import "../models" in non-local package
remote: ! Push rejected, failed to compile Revel app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to ndc-console.
remote:
To https://git.heroku.com/ndc-console.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/ndc-console.git'
使用import("base/app/models")
。
任何解决方案?谢谢。
编辑
我登录heroku bash(运行heroku run bash
),我看到了文件夹结构,它是这样的:
bin
dev
more...
app /*This is the base folder*/
app
controllers
views
models
routes
config
public
.go /*this is the GOPATH*/
src
github.com
golang.org
gopkg.in
base-test /* This name is because I change the original name, from base-test to base... */
/* IS IT IMPORTANT? */
/* Inside this folder the app is duplicated */
通过这种方式,我也尝试了import("base-test/app/models")
,也包括了从root开始的所有路径(尝试荒谬的事情)。
我希望找到解决方案有所帮助。感谢。
答案 0 :(得分:0)
确定!!!完成!
最后,项目的旧名称产生了问题。似乎当我更改heroku应用程序的名称时,heroku在编译时不会更改文件夹的名称...我还需要更改.godir文件的内容并将其设置为{ {1}}(旧名)。
所以我现在的导入类似于:base-test
。
谢谢大家。