2013-02-04 2 views
11

내가 Heroku가에 레일 응용 프로그램을 누르면 다음과 같은 문제로 실행을 계속했습니다 작동하지 :레일 자산 프리 D 단지

내가 (자산/스타일 시트에) 내 주요 css.scss 파일에 변경 사항을 저장합니다

또는 애셋/이미지의 이미지로 이동하고 git으로 푸시하고 heroku로 푸시 한 다음 페이지를 다시로드하면 이러한 애셋이 전혀로드되지 않았 음을 알 수 있습니다.

이 로컬 서버에 약간의 문제가 있었지만 입력 : 아무것도하지 않는 다시 눌러 다음

rake assets:precompile 

및 로컬 서버 일반적으로 일을 다시로드

heroku run rake assets:precompile 

을하는 반면합니다. 나는 정보를 얻기 위해 주변에서 낚시를했고 특별히 도움이되는 것을 찾지 못했습니다. 내 설정/application.rb에 참고로

, (이들 중 일부 결과는 말했다 주위 낚시) :

# Enable the asset pipeline 
config.assets.enabled = true 

if defined?(Bundler) 
    # 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) 
end 

설정/환경/production.rb 에서 :

# 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 

# Fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = true 

# Generate digests for assets URLs 
config.assets.digest = true 

다른 흥미로운 점은, 내가 히로쿠에게 물을 때, 다른 말로하면 다음과 같습니다.

Preparing app for Rails asset pipeline 
     Detected manifest.yml, assuming assets were compiled locally 
-----> Rails plugin injection 
     Injecting rails_log_stdout 
     Injecting rails3_serve_static_assets 

Installing dependencies using Bundler version 1.3.0.pre.5 
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 

내가 레일 3 배웠다 정말 내가 바보 인 퍼팅있어 경우 자산 파이프 라인, 이전 버전에서 가능했던 것과 정말 미안 다른 방법을 모르는 중복 및/또는 설정 파일의 모순 된 설정.

도움을 주시면 감사하겠습니다. 이것은 두통이었습니다.

답변

13

로컬 컴파일 된 애트리뷰트를 git에 추가하고 푸시하면 헤로 쿠가 푸시 할 때 애셋을 컴파일하지 않을 수 있습니다. git에 public/assets 디렉토리를 추가하지 않았는지 확인하십시오.

+1

/public/assets를 .gitignore 파일에 추가한다는 의미입니까? 그것과 "git rm"디렉토리를 수행합니까? 또는 특정 파일을 삭제할 수 있습니까? 죄송합니다. 디렉토리가 자산 파이프 라인에 어떤 관계가 있는지 알지 못하므로 소급 요소를 소급 제거하는 방법을 잘 모르겠습니다. – Sasha

+3

git에서 해당 디렉토리를 제거한 다음 git ignore에 추가하십시오. 이 디렉토리는 레이크 에셋을 실행할 때 모든 에셋을 컴파일 할 위치입니다 : 프리 컴파일. –

+0

삭제 된 파일을 public/assets /에 저장하여 마스터하도록하십시오! 그래서 당신은 빈 공공/자산/디렉토리를 영웅에게 넘깁니다. heroku가 자동으로 rake assets을 호출해야합니다 : precompile – Bruno

관련 문제