Каждый раз, когда я запускаю свое приложение Rails локально, ни один из CSS не отображается. Отладчик в браузере показывает запрос get
для всех файлов ресурсов с отпечатками пальцев, но все они терпят неудачу, поскольку файлы не могут быть найдены. Вот как выглядит один из этих запросов:
GET http://localhost:3000/assets/announcements.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css?body=1
В консоли сервера Rails я получаю сообщение об ошибке Rack App, а также NoMethodError
для undefined method 'Silence'
. Вот как выглядит одна из этих ошибок:
2017-01-08 17:24:49 -0800: Rack app error handling request { GET /assets/normalize.self-cadbbf81015902777c37852b3ea54398335fd421c6c76891c077ec5954211bb4.css }
NoMethodError: undefined method 'silence' for #<Logger:0x007fe1062c1c78
Оба журнала ошибок (консоль браузера и консоль сервера Localhost) содержат несколько версий одной и той же ошибки, все они указывают на активы (* .js и * .css).
Я просмотрел бесчисленное количество сообщений StackOverflow, но безрезультатно. Это тоже по какой-то причине влияет только на это приложение; все мои другие приложения Rails работают нормально. Вот мои характеристики:
Версия Rails: 5.0.1
Версия Ruby: 2.3.1p112
Вещи, которые я пробовал:
Директивы assets:clean
, assets:precompile
, rm -rf /tmp
и /public/assets
, все предыдущие добавлялись к среде разработки, повторному клонированию репозитория из github и установке пакета.
3 ответа
Похоже, вы столкнулись с этой проблемой: https://github.com/rails / sprockets-rails / issues / 376.
Если вы внесли это изменение в конфигурацию, вместо этого следует использовать ActiveSupport::Logger
. Если у вас есть Logger.new
, используйте вместо него ActiveSupport::Logger
.
Check The Sprockets 4 Manifest in rails 5
http://eileencodes.com/posts/the-sprockets-4-manifest/
Это может тебе помочь.
Я знаю, что это старый вопрос, но наткнулся на него, пытаясь исправить ту же проблему.
Я нашел, а также ответ Райана Бигга, мне нужно было закомментировать следующую строку в development.rb
, чтобы предотвратить бомбардировку Sprockets в Rails 5.2.2:
# Suppress logger output for asset requests.
# config.assets.quiet = true
Похожие вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.
Logger.new
наActiveSupport::Logger
? Если да, то в моем файле development.rb нет экземпляровLogger.new
. Моя проблема, похоже, совпадает с той, с которой вы связались, но я не могу найти там решение.