Статические файлы загружаются медленно, потому что они, возможно, не являются статическими, но обслуживаются Sprockets.
Проверьте в production.rb и посмотрите, config.assets.compile = true
или он не установлен. Это будет означать, что Sprockets выполняет свою работу. Вы также увидите, как используются будущие заголовки.
Просмотрите /home/my_user/my_app/current/public
и посмотрите, существует ли assets
; Я подозреваю, что нет.
Это означает, что mkdir -p
не работает. Наиболее вероятной причиной является то, что пользователь развертывания не имеет достаточных разрешений для создания каталога.
Исправьте это, а также проверьте (если это обновленное приложение от 3.0 или до), чтобы ваша настройка конфигурации соответствовала настройкам в last section руководства по конвейеру.
Спасибо. Я вижу, что я неправильно понял комментарий '# Не отступать от конвейера активов, если предварительно скомпилированный актив пропущен'. Если 'config.assets.compile = true', то он будет компилировать каждый во время выполнения, даже если они были предварительно скомпилированы. –
Что касается 'cap deploy', активы успешно скомпилируются. Они снова появляются, если я вручную удалю папку с ресурсами, а затем снова вернусь к развертыванию. Если я вхожу в ssh (как тот же пользователь) и запускаю команду mkdir -p/..., проблема с разрешением отсутствует. Это что-то я пропустил в deploy.rb? –
Если компиляция истинна, то Sprockets обрабатывает запросы на активы, если они не существуют в 'public/assets' (по умолчанию false). Если это неверно, ваше приложение вернет 404 для отсутствующих активов. Используете ли вы стандартный сценарий развертывания (включив «load» deploy/assets'') в свой Capfile? –