Подтвердить что ты не робот

Рельсы 4 разрешены для обслуживания статических активов: правильно ли это? (по героку)

Окружение: геройку

Рельсы: 4

Рубин: 2

Мы развернули приложение на heroku, и казалось, что что-то в общедоступной папке было недоступно (не видел статический файл, поэтому маршрутизатор включился, а затем жалуется на отсутствие соответствия маршрута).

Чтобы обойти это, мы установили

# Rails 4 only flag
config.serve_static_assets = true

в нашем файле production.rb. Это действительно лучший способ справиться с этим? Или мы не смогли настроить приложение, как правильно разместить его на heroku?

4b9b3361

Ответ 1

Это устарело в Rails 4.2, и теперь это псевдоним, который должен быть удален в Rails 5.0

config.serve_static_assets = true

Его следует изменить на:

config.serve_static_files = true

Ответ 2

В предыдущих версиях Rails Heroku вставлял плагин, который позволял обслуживать статические ресурсы, поэтому этой проблемы не было. Поскольку эта система плагинов была удалена в Rails 4, теперь они создали гем, который делает то же самое. Вы включаете его в своем Gemfile через:

gem 'rails_12factor', group: :production

См. Начало работы с Rails 4.x в Heroku

.Конечно, вы также можете использовать CDN для своих активов, но это не обязательно.

Для Rails 5+ работа на двенадцатифакторных платформах из коробки, и драгоценный камень больше не требуется

Ответ 3

Как сказал Дин Винчестер, это хорошая идея использовать CDN для ваших статических активов. Фактически, при использовании только Heroku ваше приложение Rails должно было бы нести ответственность за статические активы, поскольку архитектура Heoku Cedar не будет делать это для вас.

Настройка config.serve_static_assets = true - это путь, если вы не хотите настраивать CDN и использовать только Heroku.

Ответ 4

Направляющие направляющих неправильны. Попробуйте...

config.assets.serve_static_files = true