4

每次我在本地启动我的 Rails 应用程序时,都没有显示任何 CSS。浏览器中的调试器显示get对所有带有指纹的资产文件的请求,但由于找不到文件,它们都失败了。以下是其中一个请求的样子:

GET http://localhost:3000/assets/announcements.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css?body=1

在 Rails 服务器控制台中,我收到一个 Rack App Error,以及一个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

两个错误日志(浏览器控制台和本地主机服务器控制台)都包含同一错误的多个再现,都指向资产(*.js 和 *.css)。

我搜索了无数 StackOverflow 帖子,但无济于事。出于某种原因,这也仅影响这一应用程序;我所有的其他 Rails 应用程序都运行良好。这是我的规格:

导轨版本:5.0.1

红宝石版本:2.3.1p112

我尝试过的事情:

assets:clean, assets:precompile,rm -rf /tmp/public/assetsdirectpories,所有之前的开发环境,从github重新克隆存储库和捆绑安装。

4

3 回答 3

3

我知道这是一个老问题,但在尝试解决同样的问题时偶然发现了这个问题。

我发现和 Ryan Bigg 的回答一样,我需要注释掉以下行development.rb以阻止 Sprockets 在 Rails 5.2.2 中轰炸:

  # Suppress logger output for asset requests.
  # config.assets.quiet = true
于 2019-08-01T17:57:42.333 回答
2

看起来您遇到了这个问题:https ://github.com/rails/sprockets-rails/issues/376 。

在您进行了此配置更改的地方,您应该ActiveSupport::Logger改用它。如果你有Logger.new,请ActiveSupport::Logger改用。

于 2017-01-09T01:48:09.643 回答
-1

检查 Rails 5 中的 Sprockets 4 清单

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

它可能会帮助你。

于 2017-01-09T11:09:53.997 回答