Сбой Dart на Heroku, отсутствует файл?

#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»?