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

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

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

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

5 ответов

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

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

config.serve_static_assets = false

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

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

rake assets:precompile

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


Если вы переходите на новую версию 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


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


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

rake assets:precompile


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

Я обновил 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, и он просто работал (для разработки).

licensed under cc by-sa 3.0 with attribution.