Прекомпилированный CSS не найден в рабочем режиме Rails 3.1 - PullRequest
18 голосов
/ 12 октября 2011

Когда я запускаю рельсы в рабочем режиме, он прекомпилирует все ресурсы, но не может обслуживать ресурс 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

Ответы [ 3 ]

34 голосов
/ 30 декабря 2011

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

config.serve_static_assets = true

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

3 голосов
/ 16 октября 2011

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

0 голосов
/ 12 октября 2011

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

<%= stylesheet_link_tag "application" %>

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

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

Это гарантирует, что предварительно скомпилированное приложение-xxx.CSS будет включен.

...