Rails应用程序资产未在开发环境中加载

时间:2017-01-09 01:41:25

标签: ruby-on-rails rack nomethoderror activesupport rails-assets

每次我在本地启动我的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.1p112assets:cleanassets:precompilerm -rf /tmp directpories,以前的所有前置开发环境,从github重新克隆存储库并捆绑安装。

3 个答案:

答案 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)

检查导轨5中的链轮4清单

http://eileencodes.com/posts/the-sprockets-4-manifest/

它可能对你有帮助。