生产中的Rails application.js错误:未捕获的SyntaxError:意外的数字

时间:2014-03-05 11:15:32

标签: jquery ruby-on-rails heroku ruby-on-rails-3.2 asset-pipeline

我从application.js文件的第1行收到此错误:

Uncaught SyntaxError: Unexpected number   application-b975feabda9124d54cd2e23989649e07.js:1

错误来自jquery的评论部分中的“2”:

2
 * http://jquery.com/
 *
 * Copyright 2011, John Resig

工作时看起来像这样:

/*!
 * jQuery JavaScript Library v1.7.2
 * http://jquery.com/
 *
 * Copyright 2011, John Resig

我的Dev环境中没有错误。只有在推送到Heroku之后才会编译application.js.

更新

我搜索过assets / javascripts中的所有js文件,找不到与问题相关的2。我怀疑它与jquery-rails gem有关,因为当我将gem降级为2.0.1时,2变为1。

感谢所有想法!

2 个答案:

答案 0 :(得分:0)

您可以执行以下步骤

a)检查包含的所有Java Script文件,

  • 您可能在任何JS文件中错误地添加了2,如果是这样的话,请检查并删除它。

  • 检查评论开始和结束标签,如果是这样的话,请更正。

b)如果上述任何一种情况适用,则提交并推送更新到heroku并检查。

c)如果不是这种情况,请尝试通过编译资产在本地生产环境中运行应用程序并查看它是否仍然存在。另外请分享JS文件,以便我们为您检查。

答案 1 :(得分:0)

此问题是由Rails缓存静态资产引起的。我能够通过阻止静态资产缓存来解决此问题,如this article中所述(感谢Ronze

我将此添加到我的application.rb文件中:

# config/application.rb
require 'rack/cache'

if !Rails.env.development? && !Rails.env.test?
  config.middleware.insert_before Rack::Cache, Rack::Static, urls: [config.assets.prefix],     root: 'public'
end