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

ActionController:: RoutingError (Нет совпадений маршрута [GET] "/assets/images/control_top.png" ): в рельсах 3.2.8

Фоновое изображение не загружается на моей странице просмотра. Показывая эту ошибку.

ActionController:: RoutingError (Нет совпадений маршрутов [GET] "/assets/images/control_top.png" )

что я могу сделать, чтобы решить эту проблему?

4b9b3361

Ответ 1

В процессе производства Rails не несет ответственности за обслуживание статических активов. Поэтому вы получаете эту ошибку.

Этот параметр управляется этим параметром в config/environment/production.rb в вашем приложении:

config.serve_static_assets = false

Вы можете установить значение true

или попробуйте это

rake assets:precompile 

(компилирует и копирует изображения, css и js из приложения/активов в public/.

Ответ 2

Если вы переходите на новую версию Rails (Rails 4 и Rails 3.2.16 приходят на ум), и вы вдруг начинаете видеть эту ошибку, вполне вероятно, что ваша таблица стилей указывает на не отпечатки пальцев, кешированная версия файлов. Если вы используете конвейер активов, чтобы воспользоваться им, вам нужно использовать новые помощники, которые указывают на отпечатанную, кэшированную версию файлов. Для этого вам нужно либо вставить erb в ваш файл css, либо использовать sass.

Неправильно (используется sass):

.class
  background: url('asset.png') no-repeat

Исправить (использует sass):

.class
  background: image-url('asset.png') no-repeat

Для получения дополнительной информации см. здесь: http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

Ответ 3

Помогите кому-нибудь, я попробовал все ответы и забыл самую основную вещь. Очистка кеша браузера, как только я сделал это, было хорошо:)

Ответ 4

вам нужно запустить эту команду

rake assets:precompile

Ответ 5

Я продолжал использовать конвейер активов, но мне пришлось изменить жесткий код, который я использовал следующим образом (для моей среды разработки):

Я обновил my/config/application.rb для использования конвейера активов:

config.assets.enabled = true

Я изменил все мои URL-адреса изображений, чтобы указать на "/assets/image_without_old_image_directory_name.jpg"

так, например, мои изображения раньше были в /public/images/xxx.jpg. Я переместил их в /app/assets/images/xxx.jpg. Я изменил img src из /images/xxx.jpg в/assets/xxx.jpg

Мне не пришлось делать предварительную компиляцию активов и просто удалять все видимые аспекты конвейера активов в /public и в /tmp, и он просто работал (для разработки).