1

我的應用程序在更新後突然不起作用。不知道發生了什麼問題。基本上,當我推到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:  <%= stylesheet_link_tag "application", :media => "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:  <link href='http://fonts.googleapis.com/css?family=Kreon' rel='stylesheet' type='text/css'> 
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:  <title><%= full_title(yield(:title)) %></title> 
2012-12-11T23:18:13+00:00 app[web.1]:  7:  <%= favicon_link_tag 'favicon.ico' %> 
2012-12-11T23:18:13+00:00 app[web.1]:  10:  <%= csrf_meta_tags %> 
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:  <meta name="google-site-verification" content="idIPkgRBikSL9PCS4rVkkZfRjxYbPxNbyF6tVymBWbc" /> 
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的地方n一種沒有改變的方式,並且一直工作)。

我搜索瞭如何處理「導入未找到或無法讀取的文件:bootstrap」錯誤,並着陸於this discussion並檢出relevant heroku troubleshoot page,但在我的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命名法來查找實際有問題的代碼段?

謝謝。

回答

3

STart與第1行app/assets/stylesheets/custom.css.scss並尋找錯誤>。 也看看確保application.scss是你所期望的。

也只是重命名custom.css.scss只是custom.scss哎呀,這可能會做到這一點。

+0

因此,實際上,問題似乎是,當我將一些.js文件更改爲js.coffee文件時,git保留了.js版本,並且具有不同擴展名的相同文件導致了問題。重新命名並嘗試推送custom.whatever指出,當我刪除冗餘文件,一切正常。所以謝謝你指點我正確的方向! – Sasha

+0

沒問題。等到你有資產預先編譯的更大問題時,那麼這個樂趣真的開始了! – pjammer

+0

是的,同樣的問題在這裏,並有一個爆炸@pjammer –

0

同樣的事情也發生在我身上
「預編譯資產失敗。」
:同時推到Heroku的,
在我的開發環境,我在CSS有一個錯誤 「.........
光標:指針
顏色:#808080;」

錯過了「;」之後的「指針」, 開發環境並不在意這個錯誤, 但Heroku的預編譯任務沒有。

其他一些問題可能由重複的命名文件引起,帶有「css」和「css.scss」後綴。

0

試試這個終端:

rake assets:precompile RAILS_ENV=production --trace 

不是試圖推動在Heroku更好。

我剛剛有同樣的錯誤。 問題是:

  • 色器件的config.secret_key有人評論
  • syntax_error JavaScript文件(「中」,而不是「在」一個在for循環)