#git #heroku #dart
#git #heroku #dart
Вопрос:
Я развернул свое приложение на heroku, используя этот пакет сборки:https://github.com/igrigorik/heroku-buildpack-dart
Локально все работает нормально, ошибок при развертывании не было, но когда я запускаю приложение, я получаю ошибку на этапе настройки загрузки (пакет dart_config). Журналы Heroku показывают:
2014-07-01T13:29:14.754422 00:00 heroku[web.1]: Starting process with command `./dart-sdk/bin/dart bin/kompost_cmd.dart`
2014-07-01T13:29:17.097360 00:00 app[web.1]: config.yaml does not exist
и когда я пытаюсь перечислить развернутый каталог, config.yaml присутствует:
~ $ cd bin
~/bin $ ls -alF
total 16
drwx------ 2 u49334 49334 4096 Jul 1 12:56 ./
drwx------ 8 u49334 49334 4096 Jul 1 13:26 ../
-rwx------ 1 u49334 49334 412 Jul 1 12:56 config.yaml*
-rwx------ 1 u49334 49334 3135 Jul 1 12:56 kompost_cmd.dart*
lrwxrwxrwx 1 u49334 49334 11 Jul 1 13:26 packages -> ../packages/
Что может быть не так?
//редактировать
Вероятно, это ошибка пути. Но я загружаю этот файл конфигурации из того же места, что и файл dart, который отлично работает на моем локальном компьютере. В чем разница?
Комментарии:
1. И config.yaml присутствует, когда я перечисляю git ls-tree -r master -только по имени
2. Похоже, что ваш
config.yaml
файл находится в подкаталоге с именемbin
? Я очень мало знаю о Dart, но когда я начал работать на Heroku с Python, у меня возникла похожая проблема, потому что моегоrequirements.txt
файла не было в корне моего репозитория. В итоге мне пришлось переместить некоторые файлы.
Ответ №1:
Вам нужно быть осторожным, потому что корневой путь, используемый для разрешения пути к файлу, находится там, где вы находитесь, когда запускаете свое приложение dart.
Итак, здесь ваш config.yaml
отсутствует, потому что он находится в bin/
, а не в ./
Возможно, вам может помочь опция -p<path> or -package-root=<path>
виртуальной машины dart, опция DartVM
Комментарии:
1. Спасибо, это, вероятно, причина моей проблемы. Есть ли способ изменить этот «рабочий каталог» на «bin»?