Rails ActionView::Template::Error(google_analytics.js 未预编译)

Posted

技术标签:

【中文标题】Rails ActionView::Template::Error(google_analytics.js 未预编译)【英文标题】:Rails ActionView::Template::Error (google_analytics.js isn't precompiled) 【发布时间】:2013-05-07 13:42:03 【问题描述】:

我决定在我的模板中使用javascript_inlcude_tag 'google_analytics.js',避免使用许多可以为我完成它的宝石,转而支持测试新的 Google Analytics“通用”功能。

问题是 Google Analytics 提供的代码不在 Coffeescript 中,因此我将其添加到我的 vendor/assets/javascripts 中,就像我在我的应用程序中使用的许多其他库一样。但与其他所有方法不同的是,javascript_include_tag 方法会导致 Rails 因错误而停止:

Rails ActionView::Template::Error (google_analytics.js isn't precompiled)

在我的许多 Coofeescripts 中,其他供应商库只是“必需的”。

有人知道这种当前的分析 javascript 方法有什么问题吗?

【问题讨论】:

【参考方案1】:

Dan McClain 在this (related) post 中同样建议,通过在config/environments/production.rb 中添加以下行解决了该问题:

config.assets.precompile += %w( google_analytics.js )

完成!

【讨论】:

【参考方案2】:

之前的评论:

Google Analytics 提供的代码不在 Coffeescript 中,因此我将其添加到我的 vendor...

Coffeescript 中的 js 不必通过 application.js 中的直接 //= require google_analytics 包含在您的资产管道中,作为文件 .js.coffee 的扩展名或只是 .js。

这么说并假设您在生产环境中遇到该错误,似乎您没有将 js 文件添加到资产预编译数组中。在您的 config/environments/production.rb 中需要以下行:

config.assets.precompile += %w( google_analytics.js )

希望有帮助

【讨论】:

以上是关于Rails ActionView::Template::Error(google_analytics.js 未预编译)的主要内容,如果未能解决你的问题,请参考以下文章

markdown [rails:devise] Ruby on Rails的身份验证gem。 #ruby #rails

Rails:如何在 Rails 中为 Devise 设置密钥?

从 Rails 2 到 Rails 3 路由

Rails:在 Rails 控制器中捕获所有异常

如何在带有 Rails 4.2 的专用调试端口上使用工头启动 Rails?

Rails 4 的 Rails_admin 批量分配错误