Предварительно скомпилированный 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
Ответы
Ответ 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.