복붙노트

[RUBY-ON-RAILS] 3.1.0 ActionView :: 템플릿 :: 오류 (application.css가 미리 컴파일되지 않음) 레일

RUBY-ON-RAILS

3.1.0 ActionView :: 템플릿 :: 오류 (application.css가 미리 컴파일되지 않음) 레일

나는 인덱스 기능을 가진 간단한 페이지 컨트롤러와 기본 레일 응용 프로그램을 만든 내가 페이지를로드 할 때 내가 얻을 :

ActionView::Template::Error (application.css isn't precompiled):
    2: <html>
    3: <head>
    4:   <title>Demo</title>
    5:   <%= stylesheet_link_tag    "application" %>
    6:   <%= javascript_include_tag "application" %>
    7:   <%= csrf_meta_tags %>
    8: </head>
  app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__43625033_88530400'

Gemfile

source 'http://rubygems.org'

gem 'rails', '3.1.0'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'

gem 'execjs'
gem 'therubyracer'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails', "  ~> 3.1.0"
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
end

gem 'jquery-rails'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

해결법

  1. ==============================

    1.기본 레일으로하면, 파일이 프로덕션 환경에서 미리 컴파일이 프로덕션에 (런타임시 자산을 컴파일) 사용 라이브 컴파일을하려면 true로 config.assets.compile를 설정해야한다고 가정합니다.

    기본 레일으로하면, 파일이 프로덕션 환경에서 미리 컴파일이 프로덕션에 (런타임시 자산을 컴파일) 사용 라이브 컴파일을하려면 true로 config.assets.compile를 설정해야한다고 가정합니다.

    # config/environments/production.rb
    ...
    config.assets.compile = true
    ...
    

    당신은 당신이 미리 컴파일 된 자산을 사용하고 있지만 누락 된 사전 컴파일 된 파일이있을 때 톱니으로 폴백 (fallback)이 옵션을 사용할 수 있습니다.

    config.assets.compile 옵션을 false로 설정하고 누락 된 파일의 이름을 나타내는 "AssetNoPrecompiledError"를 얻을 것이다 실종 미리 컴파일 된 파일이 있습니다됩니다.

  2. ==============================

    2.당신은 당신이 production.rb에서 false로 config.assets.compile 설정하면 생산에 더 나은 성능을 얻을 자산을 사전 컴파일합니다. 이 레이크 작업과 사전 컴파일 할 수 있습니다 :

    당신은 당신이 production.rb에서 false로 config.assets.compile 설정하면 생산에 더 나은 성능을 얻을 자산을 사전 컴파일합니다. 이 레이크 작업과 사전 컴파일 할 수 있습니다 :

    bundle exec rake assets:precompile
    

    당신이 카피 스트라 노를 사용하는 경우, 버전 2.8.0은 배포 시간이 처리하는 조리법이있다. 더 많은 정보 자산 파이프 라인 설명서의 "생산"절을 참조하십시오 : http://guides.rubyonrails.org/asset_pipeline.html

  3. ==============================

    3.OK - 저도 같은 문제가 있었다. 나는 "config.assets.compile 사실 ="사용하지 않았다 - 내가 설정 / 환경 / production.rb의 목록에 내 .CSS 파일을 모두 추가했다 :

    OK - 저도 같은 문제가 있었다. 나는 "config.assets.compile 사실 ="사용하지 않았다 - 내가 설정 / 환경 / production.rb의 목록에 내 .CSS 파일을 모두 추가했다 :

    config.assets.precompile += %w( carts.css )
    

    그럼 TMP / restart.txt 생성 (나중에 삭제)했다

    내가 함께 추가하는 데 필요한 모든 추가 CSS 파일을 찾을 수 있도록 나는 일관는 stylesheet_link_tag 도우미를 사용 :

    find . \( -type f -o -type l \) -exec grep stylesheet_link_tag {} /dev/null \;
    
  4. ==============================

    4.카피 스트라 노의 사용자에 대한 빠른 수정 Capfile이 줄을 추가하는 것입니다

    카피 스트라 노의 사용자에 대한 빠른 수정 Capfile이 줄을 추가하는 것입니다

    # Uncomment if you are using Rails' asset pipeline
    load 'deploy/assets'
    
  5. ==============================

    5.이 글을 읽고 있지만 application.css로 대신 예를 들어, 자신의 사용자 정의 CSS 클래스에 문제가없는 모든 사람들을 위해 admin.css, base.css 등

    이 글을 읽고 있지만 application.css로 대신 예를 들어, 자신의 사용자 정의 CSS 클래스에 문제가없는 모든 사람들을 위해 admin.css, base.css 등

    언급 한 바와 같이 솔루션을 사용하는 것입니다

    bundle exec rake assets:precompile
    

    그리고 스타일 시트에서 참조는 application.css 참조

    <%= stylesheet_link_tag    "application", :media => "all" %>
    

    자산 파이프 라인 때문에 application.css에 스타일을 모두 사전 컴파일합니다. 자산 파이프 라인을 사용하는 경우 다른 참조를 사용하는 것은 잘못이다, 그래서 이것은 또한 개발에 발생합니다.

  6. ==============================

    6.내 개발 환경에서 동일한 오류를 가졌다. 결국 모든 나는 그것을 추가했습니다 해결하기 위해 할 필요가 :

    내 개발 환경에서 동일한 오류를 가졌다. 결국 모든 나는 그것을 추가했습니다 해결하기 위해 할 필요가 :

    config.assets.manifest = Rails.root.join("public/assets")
    

    내 설정 / 환경 / development.rb 파일에 그것을 고정. 자산 관련 개발에 내 최종 설정은 다음과 같습니다

    config.assets.compress = false  
    config.assets.precompile += %w[bootstrap-alerts.js] #Lots of other space separated files
    config.assets.compile = false
    config.assets.digest = true
    config.assets.manifest = Rails.root.join("public/assets")
    config.assets.debug = true
    
  7. ==============================

    7.나는 또한 아직도-미리 컴파일 오류를 슬로우 사전 컴파일하지 않고 생산에 실행하려고이 문제를했다. 나는 application.rb 댓글을 달았 된 라인 변경했다 :

    나는 또한 아직도-미리 컴파일 오류를 슬로우 사전 컴파일하지 않고 생산에 실행하려고이 문제를했다. 나는 application.rb 댓글을 달았 된 라인 변경했다 :

      # If you precompile assets before deploying to production, use this line
      # Bundler.require(*Rails.groups(:assets => %w(development test)))
      # If you want your assets lazily compiled in production, use this line
      Bundler.require(:default, :assets, Rails.env)
    
  8. ==============================

    8.여기에 빠른 수정입니다 :

    여기에 빠른 수정입니다 :

    당신이 카피 스트라 노 사용하는 경우이 당신의 deploy.rb이 추가 :

    after 'deploy:update_code' do
      run "cd #{release_path}; RAILS_ENV=production rake assets:precompile"
    end
    

    캡 배포

  9. ==============================

    9.오늘은이 오류 메시지에 달려 내 특정 내 경우에 대한 해결책을 게시하고 싶었다. 그것은 내 문제는 내 CSS 파일 중 하나가 닫는 중괄호 누락 된 컴파일 할 수 없습니다에이 파일을 일으키는 것을 것을 밝혀졌습니다. 당신이 자동화 된 프로세스가있는 경우는이 통지 어렵게 될 수 있습니다 프로덕션 환경에 대한 (자산 프리 D 포함) 세트의 모든 것을 위로 그.

    오늘은이 오류 메시지에 달려 내 특정 내 경우에 대한 해결책을 게시하고 싶었다. 그것은 내 문제는 내 CSS 파일 중 하나가 닫는 중괄호 누락 된 컴파일 할 수 없습니다에이 파일을 일으키는 것을 것을 밝혀졌습니다. 당신이 자동화 된 프로세스가있는 경우는이 통지 어렵게 될 수 있습니다 프로덕션 환경에 대한 (자산 프리 D 포함) 세트의 모든 것을 위로 그.

  10. ==============================

    10.후 다른 모든 실패 ...

    후 다른 모든 실패 ...

    내 솔루션에서 레이아웃 파일을 변경했다

    = stylesheet_link_tag "reset-min", 'application'
    

    = stylesheet_link_tag 'application'
    

    그리고 그것은했다! (당신은 매니페스트 내부 리셋 파일을 넣을 수 있습니다.)

  11. ==============================

    11.그냥 다른 방법은 Heroku가에서이 최대 문제를 해결하려면 다음 확인하십시오 Rakefile이 최선을 다하고 밀려합니다.

    그냥 다른 방법은 Heroku가에서이 최대 문제를 해결하려면 다음 확인하십시오 Rakefile이 최선을 다하고 밀려합니다.

  12. ==============================

    12.Heroku가 서버에서 (읽기 전용 특정 파일 시스템), 당신이 CSS의 런타임 컴파일을하려면 (그 권장하지 않습니다하지만 당신은 그것을 할 수 있습니다) 아래처럼 당신이 수행 한 설정을 -

    Heroku가 서버에서 (읽기 전용 특정 파일 시스템), 당신이 CSS의 런타임 컴파일을하려면 (그 권장하지 않습니다하지만 당신은 그것을 할 수 있습니다) 아래처럼 당신이 수행 한 설정을 -

    # inside config/application.rb
    config.assets.enabled = true
    config.assets.prefix = Rails.root.join('tmp/assets').to_s
    
    # If you are using sass then keep gem outside of asset group
     gem 'sass-rails',   '3.1.4'
    
    # inside config/environments/production.rb
    config.assets.compile = true
    
  13. ==============================

    13.당신이 생각하는 경우에 당신은 모든 좋은 따라하지만 여전히 불운, 단지 확인 / 카피 스트라 노 실행 터치 TMP / restart.txt 또는 끝 부분에 해당합니다. 나는 불운 목록하지만 지금에 있었다 :)

    당신이 생각하는 경우에 당신은 모든 좋은 따라하지만 여전히 불운, 단지 확인 / 카피 스트라 노 실행 터치 TMP / restart.txt 또는 끝 부분에 해당합니다. 나는 불운 목록하지만 지금에 있었다 :)

  14. ==============================

    14.당신은 아마 당신이 사용하는 CSS에 구문 오류가 있습니다.

    당신은 아마 당신이 사용하는 CSS에 구문 오류가 있습니다.

    이 명령을 실행

    $ bundle exec rake assets:precompile RAILS_ENV=development --trace
    

    그것은이 확정, 예외를 줄 것이다 당신은 모든 수행됩니다.

    감사

  15. from https://stackoverflow.com/questions/7275636/rails-3-1-0-actionviewtemplateerror-application-css-isnt-precompiled by cc-by-sa and MIT license