Heroku预编译资产失败

更新后,我的应用程序突然无法运行。 不确定出了什么问题。 基本上,当我推送到heroku时,我得到这些错误:

Precompiling assets failed, enabling runtime asset compilation Injecting rails31_enable_runtime_asset_compilation 

再高一点:

  rake aborted! Unexpected token: operator (>) (line: 19073, col: 9, pos: 605247) Error at new JS_Parse_Error (/tmp/execjs20121211-811-1z5vum.js:1720:22) at js_error (/tmp/execjs20121211-811-1z5vum.js:1728:15) at croak (/tmp/execjs20121211-811-1z5vum.js:2189:17) at token_error (/tmp/execjs20121211-811-1z5vum.js:2196:17) at unexpected (/tmp/execjs20121211-811-1z5vum.js:2202:17) at /tmp/execjs20121211-811-1z5vum.js:2580:17 at maybe_unary (/tmp/execjs20121211-811-1z5vum.js:2665:27) at expr_op (/tmp/execjs20121211-811-1z5vum.js:2685:45) at expr_ops (/tmp/execjs20121211-811-1z5vum.js:2692:24) at maybe_conditional (/tmp/execjs20121211-811-1z5vum.js:2696:28) 

当我实际加载网站(“我们很抱歉,但出现问题”),并查看heroku日志时,我得到了这个:

 Load path: /app 2012-12-11T23:18:13+00:00 app[web.1]: 8:  "all" %> 2012-12-11T23:18:13+00:00 app[web.1]: (in /app/app/assets/stylesheets/custom.css.scss)): 2012-12-11T23:18:13+00:00 app[web.1]: 6:  2012-12-11T23:18:13+00:00 app[web.1]: ActionView::Template::Error (File to import not found or unreadable: bootstrap. 2012-12-11T23:18:13+00:00 app[web.1]: 5:  2012-12-11T23:18:13+00:00 app[web.1]: 7:  2012-12-11T23:18:13+00:00 app[web.1]: 10:  2012-12-11T23:18:13+00:00 app[web.1]: app/assets/stylesheets/custom.css.scss:1 2012-12-11T23:18:13+00:00 app[web.1]: 11:  2012-12-11T23:18:13+00:00 app[web.1]: 2012-12-11T23:18:13+00:00 app[web.1]: 

(Kreon是我添加了一段时间的另一种字体,它一直工作正常.custom.css.scss是我的主要css文件,第一行是我以一种没有改变并永久工作的方式导入bootstrap的地方)。

我搜索了如何处理“导入未找到或无法读取的文件:bootstrap”错误,并登陆此讨论并检查了相关的heroku疑难解答页面 ,但在我的production.rb文件中将assets.compile更改为true导致上面的heroku推送错误,并且疑难解答页面似乎与我的具体问题没有多大关系。 不确定这里发生了什么,所以我只想在下面放一些可能相关的代码。

的Gemfile

 source 'https://rubygems.org' gem 'rails', '3.2.8' gem 'googlecharts', :require => "gchart" gem 'unicorn' gem 'newrelic_rpm' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' group :production do gem 'pg' end group :development do gem 'sqlite3' gem 'rspec-rails', '2.11.0' gem 'guard-rspec', '1.2.1' end group :test do gem 'capybara', '1.1.2' gem 'rb-fsevent', '0.9.1' gem 'growl', '1.0.3' gem 'guard-spork', '1.2.0' gem 'spork', '0.9.2' gem 'factory_girl_rails', '4.1.0' end gem 'annotate', '2.5.0' gem 'faker', '1.0.1' gem 'will_paginate', '3.0.3' gem 'bootstrap-will_paginate', '0.0.6' # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1' gem 'bootstrap-sass', '2.0.4' gem 'bcrypt-ruby', '3.0.1' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', :platforms => :ruby gem 'uglifier', '>= 1.0.3' end gem 'jquery-rails' gem 'roadie' gem 'stripe', :git => 'https://github.com/stripe/stripe-ruby' gem 'delayed_job_active_record' gem 'daemons' gem 'foreman' # To use ActiveModel has_secure_password # gem 'bcrypt-ruby', '~> 3.0.0' # To use Jbuilder templates for JSON # gem 'jbuilder' # Use unicorn as the app server # gem 'unicorn' # Deploy with Capistrano # gem 'capistrano' # To use debugger # gem 'debugger' 

production.rb

 MyApp::Application.configure do # Settings specified here will take precedence over those in config/application.rb # Code is not reloaded between requests config.cache_classes = true # Force all access to the app over SSL, use Strict-Transport-Security, # and use secure cookies. config.force_ssl = true # Full error reports are disabled and caching is turned on config.consider_all_requests_local = false config.action_controller.perform_caching = true # Disable Rails's static asset server (Apache or nginx will already do this) config.serve_static_assets = false # Compress JavaScripts and CSS config.assets.compress = true # Don't fallback to assets pipeline if a precompiled asset is missed config.assets.compile = true # Generate digests for assets URLs config.assets.digest = true # Defaults to nil and saved in location specified by config.assets.prefix # config.assets.manifest = YOUR_PATH # Specifies the header that your server uses for sending files # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true # See everything in the log (default is :info) # config.log_level = :debug # Prepend all log lines with the following tags # config.log_tags = [ :subdomain, :uuid ] # Use a different logger for distributed setups # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) # Use a different cache store in production # config.cache_store = :mem_cache_store # Enable serving of images, stylesheets, and JavaScripts from an asset server # config.action_controller.asset_host = "http://assets.example.com" # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) # config.assets.precompile += %w( search.js ) # Disable delivery errors, bad email addresses will be ignored # config.action_mailer.raise_delivery_errors = false # Enable threaded mode # config.threadsafe! # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation can not be found) config.i18n.fallbacks = true # Send deprecation notices to registered listeners config.active_support.deprecation = :notify # Log the query plan for queries taking more than this (works # with SQLite, MySQL, and PostgreSQL) # config.active_record.auto_explain_threshold_in_seconds = 0.5 end 

在我的heroku推送日志中,真正抛弃我的那一行是:

 Unexpected token: operator (>) (line: 19073, col: 9, pos: 605247) 

问题是,我不知道要查找这个麻烦的“>”的文件。 任何想法如何阅读该行/ col / pos命名法以找到实际的违规代码片段?

谢谢。

使用app/assets/stylesheets/custom.css.scss第1行进行STart并查找错误> 。 还要确保application.scss符合您的期望。

也只是将custom.css.scss重命名为custom.scss Heck,可能会这样做。

同样的事情发生在我身上,
“预编译资产失败了。” 在推向heroku的同时
在我的开发环境中,我的css中出错:
” ………
cursor:指针
颜色:#808080;“

错过了“;” 在“指针”之后,开发环境并不介意错误,但Heroku的PreCompile任务确实如此。

其他一些问题可能是由重复的命名文件引起的,带有“css”和“css.scss”后缀。

在终端试试这个:

 rake assets:precompile RAILS_ENV=production --trace 

比试图推进heroku更好。

我只是犯了同样的错误。 问题是:

  • 设计的config.secret_key被评论
  • javascript文件中的syntax_error(for循环中的“of”而不是“in”)