每次我在本地启动我的Rails应用程序时,都不会显示任何CSS。浏览器中的调试器显示带有指纹识别的所有资产文件的get
请求,但由于无法找到文件,因此它们都会失败。以下是其中一个请求:
GET http://localhost:3000/assets/announcements.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css?body=1
在Rails Server Console中,我收到了一个Rack App Error,以及NoMethodError
的{{1}}。以下是其中一个错误:
undefined method 'Silence'
2017-01-08 17:24:49 -0800: Rack app error handling request { GET /assets/normalize.self-cadbbf81015902777c37852b3ea54398335fd421c6c76891c077ec5954211bb4.css }
两个错误日志(浏览器控制台和Localhost服务器控制台)都包含多个相同错误的再现,都指向Assets(* .js和* .css)。
我搜索过无数的StackOverflow帖子,但无济于事。这也是出于某种原因只影响这一个应用程序;我所有其他Rails应用程序运行正常。这是我的规格:
Rails版本:NoMethodError: undefined method 'silence' for #<Logger:0x007fe1062c1c78
Ruby版本:5.0.1
我尝试过的事情:
2.3.1p112
,assets:clean
,assets:precompile
和rm -rf /tmp
directpories,以前的所有前置开发环境,从github重新克隆存储库并捆绑安装。
答案 0 :(得分:1)
我知道这是一个老问题,但是在尝试解决相同问题时偶然发现了这个问题。
我发现了Ryan Bigg的答案,也需要在development.rb
中注释掉以下行,以防止Sprockets在Rails 5.2.2中爆炸:
# Suppress logger output for asset requests.
# config.assets.quiet = true
答案 1 :(得分:0)
您似乎遇到了这个问题:https://github.com/rails/sprockets-rails/issues/376。
如果您进行了此配置更改,则应使用ActiveSupport::Logger
。如果您有Logger.new
,请改用ActiveSupport::Logger
。
答案 2 :(得分:0)