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

Предварительно скомпилированный CSS не найден в режиме Rails 3.1

Когда я запускаю рельсы в режиме производства, он прекомпилирует все активы, но не может служить ресурсу application.css. Я просмотрел public/assets и прекомпилировал application.css.

Однако я получаю 404 всякий раз, когда я пытаюсь получить к нему доступ со страницы.

Это инструкции, которые я использую для запуска сервера, если это может вообще помочь.

RAILS_ENV=production bundle exec rake assets:clean
RAILS_ENV=production bundle exec rake assets:precompile
rails -e production
4b9b3361

Ответ 1

Если вы хотите, чтобы Rails обслуживал статические активы, вы добавляете следующую строку в ваш production.rb:

config.serve_static_assets = true

Я понимаю, что лучше разрешить apache или nginx обслуживать их, но это работает, если вы используете автономный сервер rails (или, по крайней мере, он работает с тонким)

Ответ 2

Таким образом, получается, что рельсы не отвечают за обслуживание статических активов, которые он прекомпилирует. Вы должны настроить используемый вами веб-сервер (т.е. Nginx) для обслуживания этих статических активов вместо рельсов. Я бы хотел, чтобы это было намного яснее в документах.

Ответ 3

Не могли бы вы подтвердить, что у вас есть

<%= stylesheet_link_tag "application" %>

в сегменте головы в вашем макете приложения, а не что-то вроде:

<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />

Это гарантирует включение прекомпилированного приложения-xxx.css.