Предупреждение о запросе RSpec - Обновление Rails 5.1 - Актив отсутствует в конвейере активов

Я находился в процессе обновления приложения Rails 5.0.1 до Rails 5.1 и столкнулся с некоторыми предупреждениями об устаревании. Я смог решить все, кроме одного.

Я немного поискал и не нашел окончательного ответа.

Задний план

Это приложение, которое было только что завершено. Я только что обновил версию рельсов до 5.1.

У меня есть некоторые спецификации запроса RSpec. Они проверяют перенаправление в логине (Devise). Эта ошибка отображается в этих спецификациях.

Спецификации контроллера работают нормально. Я вижу это предупреждение в спецификациях запросов, касающихся css, js, изображений и т. д.

У меня есть dashboard.js в конвейере активов. И есть файл app/assets/javascripts/dashboard.coffee.

# config/initializers/assets.rb
Rails.application.config.assets.precompile += %w[
  sites.js
  sites.css
  admin.js
  admin.css
  header.js
  dashboard.js
  dashboard.css
  setup.js
  setup.css
]

Предупреждение

Вот предупреждение, которое я вижу.

DEPRECATION WARNING: The asset "header.js" is not present in the asset pipeline.Falling back to an asset that may be in the public folder.
This behavior is deprecated and will be removed.
To bypass the asset pipeline and preserve this behavior,
use the `skip_pipeline: true` option.
  (called from _app_views_layouts_dashboard_html_slim__2366450786595837886_80483400 at /home/ziyan/Work/Brevica/churchfoyer/app/views/layouts/dashboard.html.slim:17)

DEPRECATION WARNING: The asset "dashboard.js" is not present in the asset pipeline.Falling back to an asset that may be in the public folder.
This behavior is deprecated and will be removed.
To bypass the asset pipeline and preserve this behavior,
use the `skip_pipeline: true` option.
(called from _app_views_layouts_dashboard_html_slim__2366450786595837886_80483400 at /home/ziyan/Work/Brevica/churchfoyer/app/views/layouts/dashboard.html.slim:18)
DEPRECATION WARNING: The asset "dashboard.css" is not present in the asset pipeline.Falling back to an asset that may be in the public folder.
This behavior is deprecated and will be removed.
To bypass the asset pipeline and preserve this behavior,
use the `skip_pipeline: true` option.
  (called from _app_views_layouts_dashboard_html_slim__2366450786595837886_80483400 at /home/ziyan/Work/Brevica/churchfoyer/app/views/layouts/dashboard.html.slim:19)

DEPRECATION WARNING: The asset "logos/logo-white.png" is not present in the asset pipeline.Falling back to an asset that may be in the public folder.
This behavior is deprecated and will be removed.
To bypass the asset pipeline and preserve this behavior,
use the `skip_pipeline: true` option.
  (called from _app_views_layouts_dashboard__sidebar_html_slim___2324799200884164274_84919380 at /home/ziyan/Work/Brevica/churchfoyer/app/views/layouts/dashboard/_sidebar.html.slim:3)

Что я пробовал

  • предварительная компиляция активов вручную не решила

Я ценю любые советы о том, как решить это предупреждение.

Я думаю, что конвейер активов был обойден для спецификаций.


person Ziyan Junaideen    schedule 02.06.2017    source источник


Ответы (2)


Вам нужно добавить dashboard.js в файл assets.rb, чтобы знать, что рельсы должны быть предварительно скомпилированы.

#/config/initializers/assets.rb
Rails.application.config.assets.precompile += %w( dashboard.js )

Добавьте эту строку, на самом деле вам просто нужно раскомментировать ее и добавить имя файла.

person Md. Farhan Memon    schedule 02.06.2017
comment
и где находятся эти файлы? - person Md. Farhan Memon; 02.06.2017
comment
Я обнаружил, что помещение scss файлов в папку public, использование стороннего sass наблюдателя и компилятора и пропуск assets конвейера дает лучшую производительность при перезагрузке в реальном времени с использованием browsersync. - person W.M.; 06.09.2017

У меня была такая же проблема после того, как я обновил Rails до 5.1

Я предполагаю, что вы храните часть своих активов в папке ./public

Вы можете переместить свои активы из папки ./public в папку ./app/assets. Или просто добавьте опцию skip_pipeline: true, например:

image_url("body-bg.gif", skip_pipeline: true)
person Hirurg103    schedule 12.06.2019