如何在Rails AMP页面

时间:2016-03-28 03:19:35

标签: ruby-on-rails newrelic amp-html

AMP验证器说“除了特定形式外,不允许使用标签'脚本'。”。

现在我知道这个标签'script'是由newrelic_rpm自动创建的。

我的问题是如何在AMP页面上禁用newrelic_rpm。

我的AMP页面的网址类似于http://example.com/foo/bar.amp

所以我尝试了这样的设置config / newrelic.yml:

common: &default_settings
  license_key: foobarfoobarfoobarfoobar

  app_name: Foobar

  rules.ignore_url_regexes: ["amp", ".*amp"]

development:
  <<: *default_settings
  app_name: FooBar (Development)

  developer_mode: true

但它不起作用。

我的项目环境:

  • rails(4.1.8)
  • ruby​​(2.2.3)
  • newrelic_rpm(3.14.0.305)

2 个答案:

答案 0 :(得分:7)

我做了同样的事情。对@ Awjecc回答的小调整

ApplicationController < ActionController::Base

  before_action :ignore_newrelic, :if => :amp_request?

   ...


  private

  def ignore_newrelic
    NewRelic::Agent.ignore_transaction
    NewRelic::Agent.ignore_apdex
    NewRelic::Agent.ignore_enduser
  end

  def amp_request?
    request.format.try(:amp?)
  end

end

答案 1 :(得分:4)

我解决了自己。

application_controller.rb

class ApplicationController < ActionController::Base
  before_action :before_amp,
                if: -> { request.path_parameters[:format] == 'amp' }

  private

  def before_amp
    NewRelic::Agent.ignore_transaction
    NewRelic::Agent.ignore_apdex
    NewRelic::Agent.ignore_enduser
  end
end

对于遇到同样情况的人,我会保留这个问题。