首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法在rails 5.0上提供静态资产。"super:#<Logger:0x00000004bd78c0>没有`silence`方法“

在Rails 5.0中,silence方法已被移除,因此无法在该版本上提供静态资产。

在Rails中,静态资产是指应用程序中的静态文件,如CSS、JavaScript和图像文件。这些文件通常存储在public/assets目录下,并由Web服务器直接提供给客户端。

在Rails 5.0之前的版本中,可以使用silence方法来禁止日志记录特定代码块的日志输出。然而,在Rails 5.0中,该方法已被移除,因此无法使用它来禁止静态资产的日志输出。

要解决这个问题,可以考虑以下几种方法:

  1. 使用Rails 5.0之前的版本:如果你的应用程序对于使用旧版本的Rails没有特殊要求,可以考虑降级到Rails 5.0之前的版本,以便继续使用silence方法来禁止静态资产的日志输出。
  2. 自定义日志记录:你可以编写自定义的日志记录代码,以便在处理静态资产时禁止特定日志输出。例如,你可以在config/environments/production.rb文件中添加以下代码:
代码语言:ruby
复制
config.middleware.insert_before(Rails::Rack::Logger, DisableAssetsLogger)

然后,在app/middleware/disable_assets_logger.rb文件中定义DisableAssetsLogger中间件类,如下所示:

代码语言:ruby
复制
class DisableAssetsLogger
  def initialize(app)
    @app = app
  end

  def call(env)
    previous_level = Rails.logger.level
    Rails.logger.level = Logger::ERROR if env['PATH_INFO'].start_with?('/assets')
    @app.call(env)
  ensure
    Rails.logger.level = previous_level
  end
end

这样,当处理静态资产时,日志级别将被设置为Logger::ERROR,从而禁止相关日志输出。

  1. 使用第三方Gem:还有一些第三方Gem可以帮助解决这个问题,例如quiet_assets Gem。你可以在Gemfile中添加以下行:
代码语言:ruby
复制
gem 'quiet_assets', group: :production

然后运行bundle install命令安装Gem。这个Gem会自动禁止静态资产的日志输出。

以上是针对无法在Rails 5.0上提供静态资产的问题的解决方法。希望能对你有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CDN 适合您的 Rails 应用程序吗?适合大规模应用吗?

减少服务器负载 使用 CDN 时,应用程序的服务器不必提供静态资产,这有助于减少服务器负载并提高整体性能。 提高可用性 CDN 旨在处理大量流量,因此它们可以帮助确保您的网站在高需求期间保持可用。...是否应该在 Rails 7 应用程序中使用 CDN 取决于几个因素: 应用程序的大小 如果您的应用程序相对较小并且没有很多静态资产,则 CDN 可能不会提供太多好处。...---- 如何在 Rails 中使用 CDN 如果您决定在 Rails 7 应用程序中使用 CDN,您可以通过将 Web 服务器配置为从 CDN 服务器提供静态资产来实现。...配置 Rails 为资产提供服务 如果您使用默认的 Rails 资产管道,则需要修改 Web 服务器的配置以从 CDN 的服务器为您的资产提供服务。...Rails 7 中使用 CDN 是提高 Web 应用程序性能的好方法。

17830

Prometheus监控实战

目标标签由Prometheus在抓取期间和之后添加 用户提供的静态资源列表 基于文件的发现。例如,使用配置管理工具生成在Prometheus中可以自动更新的资源列表 自动发现。...这种方式可以轻松地管理配置,并提供自动化和服务管理 默认情况下,node_exporter在端口9100上运行,并在路径/metrics上暴露指标。...这些自定义指标可能是批处理或cron作业 等无法抓取的,可能是没有exporter的源,甚至可能是为主机提供上下文的表态指标 收集器通过扫描指定目录中的文件,提取所有格式为Prometheus指标的字符串...因此,你不应该为Alertmanager设置负载平衡,因为Prometheus会帮你处理 代码清单:Alertmanager静态定义 可以在一个Alertmanager上设置silence并查看配置是否复制到其他...为此,请单击am1上的New Silence按钮并设置silence,然后检查am2和am3上的/silences路径,应该可以看到所有主机上都复制了相同的silence配置 第8章 监控应用程序 首先

9.3K20
  • 2018年Android保活方案效果统计

    JobService在5.0,5.1,6.0作用很大,7.0时候有一定影响(可以在电源管理中给APP授权) 3、双进程(NDK方式Fork子进程)、双Service守护:高版本已失效,5.0起系统回收策略改成进程组...2、降低oom_adj的值:常驻通知栏(可通过启动另外一个服务关闭Notification,不对oom_adj值有影响)、使用”1像素“的Activity覆盖在getWindow()的view上、循环播放无声音频...结论:此方案没有起作用 结论:此方案无效果 3、故意在后台播放无声的音乐(基于onStartCommand() return START_STICKY) 1、原生5.0、5.1:锁屏后3s服务被干掉然后重启...、原生7.0:同美图m8s(7.1.1) 5、小米8(8.1):同美图m8s(7.1.1) 结论:只对5.0,5.1、6.0起作用 5、混合使用的效果,并且在通知栏弹出通知 1、原生5.0、5.1:任务管理器中干掉...对象上即可。

    2.3K50

    “技术邪教” Ruby on Rails 之父再出激进言论引争议

    在近日的 Rails World 大会上,Ruby on Rails 之父、37signals 联合创始人兼首席技术官 DHH(David Heinemeier Hansson)发表了观点称,最快的打包工具就是没有构建...DHH 还表示,这一年半以来,37 Signals 开始转向 propshaft,这个新库用于在 Rails 侧无需编译的前提下提供资产管道。...它的基本功能只有两个:为所有资产提供加载路径,以便在任意视图中访问任意位置上的 gem 及其他资产;提供摘要标记,从而确保拥有良好的远期动态缓存。...在推特上,DHH 还展示了公司主站的性能表现,他表示 HEY 主要应用运行的 JavaScript 代码没有经过构建。...因为在 HTTP2 中,每个请求的开销仍然非常大,并且存在并发限制,此外还会出现瀑布流和低效压缩。目前,“打包” 对于高性能网站来说是无法绕过的。

    30310

    全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)1、引言2、先总结一下,Android端APP为何要搞保活黑科技?3、相关文章4、常见的Android端保活黑科技方案盘点5、汇

    Android手机上的运行效果,希望能给大家提供一些客观的参考。...题外话:实际上,对于后台消息推送能力,Android原版系统早就内置了系统级推送服务(跟iOS上的APNs服务是一个东西),它就是GCM服务(现在升级为FCM了),但众所周之的原因,谷哥的服务在国内都是用不了的...JobService在5.0,5.1,6.0作用很大,7.0时候有一定影响(可以在电源管理中给APP授权); 3)双进程(NDK方式Fork子进程)、双Service守护:高版本已失效,5.0起系统回收策略改成进程组...本方法的具体代码实现主要由以下6步组成。 1)该Activity的View只要设置为1像素然后设置在Window对象上即可。...▲ 结论:只对5.0,5.1、6.0起作用。 【5】混合使用的效果,并且在通知栏弹出通知: 1)原生5.0、5.1:任务管理器中干掉APP,服务会在周期时间后重新启动。

    1.8K20

    使用 Mastodon 搭建个人信息平台:调优篇

    但是在使用的过程中,不出意外,会遇到下面两个警告和错误提示,而导致页面无法显示图片。...所以在解决这个问题的时候,我们有两个选择,一个是将补丁打在应用本身,另外一个则是把补丁打在 PaperClip 上。...并且因为我们已经用 Nginx 剥离了静态资源,所以还可以设置不使用 Puma 来提供静态资源服务。 web: ......不过 Mastodon 官方也好,社区也罢,并没有针对 Mastodon 做服务运行状况检查,所以这里我们针对 Sidekiq 做一个简单的健康检查,保障服务能够在极端情况下自动恢复即可。...本文中相关的代码,可以在 GitHub 上的开源仓库中找到,也欢迎提供更好的方案。

    2.4K11

    全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)

    Android手机上的运行效果,希望能给大家提供一些客观的参考。...题外话:实际上,对于后台消息推送能力,Android原版系统早就内置了系统级推送服务(跟iOS上的APNs服务是一个东西),它就是GCM服务(现在升级为FCM了),但众所周之的原因,谷哥的服务在国内都是用不了的...JobService在5.0,5.1,6.0作用很大,7.0时候有一定影响(可以在电源管理中给APP授权); 3)双进程(NDK方式Fork子进程)、双Service守护:高版本已失效,5.0起系统回收策略改成进程组...本方法的具体代码实现主要由以下6步组成。 1)该Activity的View只要设置为1像素然后设置在Window对象上即可。...▲ 结论:只对5.0,5.1、6.0起作用。 【5】混合使用的效果,并且在通知栏弹出通知: 1)原生5.0、5.1:任务管理器中干掉APP,服务会在周期时间后重新启动。

    4.4K20

    趣谈装饰器模式,让你一辈子不会忘

    运行结果没有问题。但是,如果用户需要一个加2个鸡蛋和1根香肠的煎饼,则用现在的类结构是创建不出来的,也无法自动计算出价格,除非再创建一个类做定制。如果需求再变,那么一直加定制显然是不科学的。...//静态代理不一定要满足is-a的关系 //静态代理会做功能增强,同一个职责变得不一样 //装饰器更多考虑的是扩展 System.out.println...public class JsonLogger extends DecoratorLogger { public JsonLogger(Logger logger) { super...比如error(Exception e),只传入一个异常对象,这样在调用时就非常方便。...它包含一个静态方法,用于提供对应的JsonLogger实例。最终在新的日志体系中,使用方式如下。

    23410

    Scala专题系列(六) : Scala特质

    现在我们可以在接口中定义方法,这些方法被称为 defender 方法或默认方法。实现类仍可以提供自己的实现。如果实现类未提供自己的实现的话, defender 方法会被调用。...Java 8 中的接口只能定义静态字段,而 Scala 中的 trait 则可以定义实例级字段。这意味着 Java 8 中的接口无法管理实例状态。接口实现类必须提供字段以记录状态。...) log("balabala") } } 在上述中,SavingAccount 中的log是不会输出到控制台的,因为在特质logger中,对于log方法没有任何的逻辑....def log(msg:String){ // 重写抽象方法 super.log(new Date() + " " + msg ) } } 因为在Logger中,log方法时一个抽象方法...,该伴生类用静态方法存放特质的方法.

    70020

    day16 类

    就可以选择使用静态方法.  静态方法需要我们在方法上面添加一 个@staticmethod 3....类的成员-属性 属性其实就是通过方法改造过来的一种变量的写法, 在方法上添加一个@property就可以 了 应用场景: 我们一般保存数据的时候, 不会保存一个人的年龄. 因为随着时间的推移....(后缀没有_) 私有的内容不能直接访问. 但是如果对方开辟了外界访问的通道(公共方法). 那可以 通过这个公共的⽅法来获取到私有的内容. 类变量(静态变量)一样拥有这样的属性: 2....私有方法    私有方法, 顾名思义, 只能⾃己访问的方法. 别人都不能随便调用的 需要注意的是, 对于私有的内容⽽言. 子类是无法继承的. 类与类之间的关系: 1....依赖关系 在方法中给方法传递一个对象. 此时类与类之间的关系是最轻的 2. 关联关系.组合关系, 聚合关系    其实这三个在代码上写法是一样的. 但是, 从含义上是不一样的. 1. 关联关系.

    46020

    六、门面模式与装饰器模式详解

    ,在 exchange() 方法内部整合3个子系统的所有功能。...9.装饰器模式 9.1.装饰器模式定义 装饰器模式(Decorator Pattern),也称为包装模式(Wrapper Pattern)是指在不改变原有对象 的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案...我又在JsonLogger 中加入了 一个内部的工厂类JsonLoggerFactory(这个类转移到DecoratorLogger 中可能更好一些),他包含 一个静态方法,用于提供对应的JsonLogger...MyBatis源码在我们后续的课程 也会深入讲解,感兴趣的小伙伴可以详细看看这块的源码,也可以好好学习一下MyBatis的命名方式, 今天我们还是把重点放到设计模式上。...再比如,Linux 的 Shell 命令,实际上也可以看作一种门面模式的应用。它继续封装系统调用,提供更加友好、简单的命令,让我们可以直接通过执行命令来跟操作系统交互。

    1.5K10
    领券