Вам не нужно вызывать API каждый раз, когда вы переходите на просмотр контроллера, вам нужно вызывать его один раз.
Если у вас есть TableView с ячейкой, и эта ячейка получает от API и откроется новый viewController, когда вы нажимаете на него.
Итак, здесь вы не добавите свой API в:
Вы добавите его один раз в viewDidLoad (), в то время как нам нужно минимизировать количество запросов как можно больше.
Пример: контроллер навигации:
Предположим, что Fruits and Cars будут представлены из API.
, когда вы нажимаете на ячейку фруктов, вы перейдете к пункту viewController:
Поэтому, когда вы хотите вернуться к первому контроллеру представления, вам явно не нужно перезагружать api, пока он уже существует.
В этом случае мы используем viewDidLoad () для обработки запроса API
Добавьте 2>&1
в конец Вашей команды для перенаправления ошибок от stderr до stdout. Это должно прояснить, что идет не так, как надо.
Просто некоторое предположение, могло бы случиться так, что у Вашего пользователя процесса веб-сервера нет полномочий сделать так.
Так как это работает, когда от командной строки (который находился бы под Вашей собственной учетной записью пользователя), это звучит мне как учетная запись, веб-сервер работает под (часто, "www-данные") не имеет, выполняют полномочия на программе преобразования.
Вы рассмотрели полномочия файла? В браузере php работает при одном пользователе, но когда Вы выполняете его в ударе, он, вероятно, работает с Вашими полномочиями пользователя.
Это - первая вещь, которую я проверил бы.
Amy
Ваш пользователь Apache/веб-сервера имеет необходимые права выполнить команду оболочки?
, Когда Вы работаете от статьи, Вы, вероятно, работаете как другой пользователь, который может объяснить, какая статья работает, но через браузер не делает.
Я решил, что это - проблема с ImageMagick, не PHP. Я делаю попытку нескольких мер, и если они не работают, я собираюсь закончить тем, что пользовался совместно использованной библиотекой некоторого PHP (вероятно, imagick), чтобы сделать работу вместо этого.
Это может быть связано с тем, что разные пользователи запускают сценарий через веб-сервер, а сценарий через bash.
Обычно сценарии / exec вызываются через сервер, как с пользователем 'www', и это у пользователя нет прав на запись в вашем регионе. но когда вы запускаете сценарий в bash, у вас есть права на запись.
Устройство вывода по умолчанию изменено.
Вход в систему WWW (после включения) дает вывод через оболочку, но не через PHP.