0

Недавно я реализовал Capistrano с новой облачной производственной средой. Когда я запускаю cap deploy, все работает нормально. Я могу посетить мое приложение в браузере, но мои статические файлы, похоже, загружаются очень медленно (например, 5.0-12.0s).Медленный конвейер активов/статические файлы

См. Ответ для наглядности на config.assets.compile.

ответ

1

Статические файлы загружаются медленно, потому что они, возможно, не являются статическими, но обслуживаются Sprockets.

Проверьте в production.rb и посмотрите, config.assets.compile = true или он не установлен. Это будет означать, что Sprockets выполняет свою работу. Вы также увидите, как используются будущие заголовки.

Просмотрите /home/my_user/my_app/current/public и посмотрите, существует ли assets; Я подозреваю, что нет.

Это означает, что mkdir -p не работает. Наиболее вероятной причиной является то, что пользователь развертывания не имеет достаточных разрешений для создания каталога.

Исправьте это, а также проверьте (если это обновленное приложение от 3.0 или до), чтобы ваша настройка конфигурации соответствовала настройкам в last section руководства по конвейеру.

+0

Спасибо. Я вижу, что я неправильно понял комментарий '# Не отступать от конвейера активов, если предварительно скомпилированный актив пропущен'. Если 'config.assets.compile = true', то он будет компилировать каждый во время выполнения, даже если они были предварительно скомпилированы. –

+0

Что касается 'cap deploy', активы успешно скомпилируются. Они снова появляются, если я вручную удалю папку с ресурсами, а затем снова вернусь к развертыванию. Если я вхожу в ssh (как тот же пользователь) и запускаю команду mkdir -p/..., проблема с разрешением отсутствует. Это что-то я пропустил в deploy.rb? –

+0

Если компиляция истинна, то Sprockets обрабатывает запросы на активы, если они не существуют в 'public/assets' (по умолчанию false). Если это неверно, ваше приложение вернет 404 для отсутствующих активов. Используете ли вы стандартный сценарий развертывания (включив «load» deploy/assets'') в свой Capfile? –