2016-11-29 8 views
0

Я пытаюсь развернуть приложение упиваться 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") и тоже в том числе весь путь от корня (пробуя абсурдные вещи).

Надеюсь, это поможет найти решение. Благодарю.

+1

Не использовать относительный путь импорта. Используйте путь пакета 'absolute_package_path.substr ($ GOPATH.length)' –

+0

Спасибо @ mh-cbon, но ... Я вас так плохо понимаю. Я пытался использовать абсолютный путь или что я думаю (как вы можете видеть на моем редактировании). Например, используя 'import (« base/app/models »)' или 'import (« base-test/app/models »)'. Можете ли вы стать более конкретным, пожалуйста? –

+1

весь пакет пользователя должен существовать в GOPATH. Предполагая, что вы перемещаете первое 'приложение' под' .go/src', путь пакета контроллеров будет 'app/app/controllers'. –

ответ

0

ОК !!! сделанный!!

И, наконец, старое название проекта создавало проблему. Кажется, что, когда я меняю имя приложения heroku, heroku не меняет имя папки, когда она будет скомпилирована ... И мне тоже нужно изменить содержимое файла .godir и установить его как base-test (старое имя).

Итак, теперь у меня есть импорт: import("base-test/app/models").

Спасибо всем.

 Смежные вопросы

  • Нет связанных вопросов^_^