Я пытаюсь развернуть приложение упиваться Heroku, в котором у меня есть эта структура папок:Revel приложение с местными пакетами в Heroku
+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")
Я не помню все попытки, но я пытаюсь его в течение длительного времени, и я не знаю, хо делать.
Я использую local go 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")
.
Любое решение? Спасибо.
EDIT
Я вхожу в Heroku Баш (работает 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")
и тоже в том числе весь путь от корня (пробуя абсурдные вещи).
Надеюсь, это поможет найти решение. Благодарю.
Не использовать относительный путь импорта. Используйте путь пакета 'absolute_package_path.substr ($ GOPATH.length)' –
Спасибо @ mh-cbon, но ... Я вас так плохо понимаю. Я пытался использовать абсолютный путь или что я думаю (как вы можете видеть на моем редактировании). Например, используя 'import (« base/app/models »)' или 'import (« base-test/app/models »)'. Можете ли вы стать более конкретным, пожалуйста? –
весь пакет пользователя должен существовать в GOPATH. Предполагая, что вы перемещаете первое 'приложение' под' .go/src', путь пакета контроллеров будет 'app/app/controllers'. –