我正在尝试设置 Google Analytics,并根据环境引用不同的跟踪 ID。我有一个沙盒版本的 Google Analytics(分析),它有一个 id,在临时环境中运行;还有一个生产版本的 Google Analytics(分析),有另一个 id,在生产环境中运行。
我将这些 id 设置为环境变量,目标是仅调用环境变量 ENV["GA_TRACKING_ID"] 在我的 javascript 文件中设置跟踪,并根据正在运行的环境自动设置 id。
但是,我不断收到ReferenceError:ENV未定义
更新:
class @GoogleAnalytics
@load: ->
window._gaq = []
window._gaq.push ["_setAccount", GoogleAnalytics.analyticsId()]
# other GA configuration
@analyticsId: ->
gon.ga_tracking_id
GoogleAnalytics.load()
并使用接受的答案的 gem 和 ApplicationController 代码:
class ApplicationController < ActionController::Base
before_action :assign_env_variables
def assign_env_variables
gon.ga_tracking_id = ENV["GA_TRACKING_ID"]
end
end
最佳答案
我真的很喜欢这个 gem,用于将后端变量传递给 Javascript:
在您的 application_controller.rb 中,您可以添加一个 before_action 过滤器来运行一个方法,这意味着它将在每个页面上加载。使用 gon,您可以使用如下代码来分配变量:
class ApplicationController < ActionController::Base
before_action :assign_env_variables
def assign_env_variables
gon.ga_tracking_id = ENV["GA_TRACKING_ID"]
end
end
只要您在模板头中包含 gon 行(根据文档),您就可以在 JS 文件中的任何位置使用它来访问该变量:
gon.ga_tracking_id
关于javascript - 通过 javascript 引用 ENV 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30890416/