Игнорировать публичные загрузки при коммите - PullRequest
0 голосов
/ 27 октября 2018

У меня возникла проблема, когда все загруженные пользователем изображения стираются при каждом внесении изменений в код.Я подумал, что это потому, что он сопоставляет публичные загрузки на сервере с тем, что у меня есть локально.

Итак, я добавил /public/uploads/* к .gitignore Тогда;

git rm -r --cached.
git add .
git commit
git push

Не удалось это исправить.Также попытался добавить в .gitignore */uploads/*, **/uploads/* и /uploads/*.

Как мне не допустить, чтобы мои коммиты удаляли пользовательские загрузки при развертывании в Heroku?

1 Ответ

0 голосов
/ 27 октября 2018

Проблема не в Git¹, а в Heroku. Его файловая система эфемерна : любые изменения, внесенные в файловую систему, теряются при каждом перезапуске dyno:

У каждого dyno есть своя эфемерная файловая система со свежей копией последнего развернутого кода. В течение срока службы динамометрического стенда его запущенные процессы могут использовать файловую систему в качестве временной блокнота, но записанные файлы не видны процессам в любом другом динамометрическом стенде, и любые записанные файлы будут отброшены в тот момент, когда динамометрический блок остановлен или перезапущен. Например, это происходит каждый раз, когда динамо заменяется из-за развертывания приложения и примерно один раз в день в рамках обычного управления динамо.

Это происходит при развертывании новой версии, а также в других ситуациях , по крайней мере, один раз в день.

Официальная рекомендация от Heroku - хранить загруженные файлы на сторонних сервисах, таких как Amazon S3.


probably Хотя, вероятно, стоит убедиться, что ваш .gitignore настроен правильно, так как это также может быть проблемой. Попробуйте запустить git check-ignore -v public/uploads/some-file-that-exists. Вы должны увидеть ответ, ссылающийся на правило игнорирования, которое приводит к игнорированию этого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...