2013-09-25 7 views
14

레일 4에서 내 image_tag ("assets/logo.png")가 다이제스트 파일에 연결되어 있지 않고 애셋이 공용/애셋에있는 이미지와 함께 미리 컴파일되어 있습니다/*rails 4 image_tag이 내 다이제스트 이미지 자산에 연결되어 있지 않습니다.

내 production.rb : 왜이 작동하지

Books::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 

    # Eager load code on boot. This eager loads most of Rails and 
    # your application in memory, allowing both thread web servers 
    # and those relying on copy on write to perform better. 
    # Rake tasks automatically ignore this option for performance. 
    config.eager_load = true 

    # Full error reports are disabled and caching is turned on. 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 

    # Enable Rack::Cache to put a simple HTTP cache in front of your application 
    # Add `rack-cache` to your Gemfile before enabling this. 
    # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid. 
    # config.action_dispatch.rack_cache = 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.js_compressor = :uglifier 
    config.assets.css_compressor = :sass 

    # Do not fallback to assets pipeline if a precompiled asset is missed. 
    config.assets.compile = false 

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

    # Version of your assets, change this if you want to expire all your assets. 
    config.assets.version = '1.0' 

    # 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 

    # Set to :debug to see everything in the log. 
    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 in app/assets folder are already added. 
    # config.assets.precompile += %w(search.js) 
    config.assets.precompile += [/^[a-z0-9]\w+.(css|js)$/] 

    # Ignore bad email addresses and do not raise email delivery errors. 
    # Set this to true and configure the email server for immediate delivery to raise delivery errors. 
    # config.action_mailer.raise_delivery_errors = false 

    # 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 

    # Disable automatic flushing of the log to improve performance. 
    # config.autoflush_log = false 

    # Use default logging formatter so that PID and timestamp are not suppressed. 
    config.log_formatter = ::Logger::Formatter.new 

end 

나는 2 시간 완전히 옵션에서이 문제를 해결하려고 지출?

답변

15

방금이 문제가 발생하여 솔루션이 매우 간단합니다. 입력 경로의 "/ assets"부분을 제거하십시오. Rails는 image_tag를 사용할 때 어디를 봐야하는지 알고 있습니다. /assets/images에 이미지 파일을 저장하십시오.

+0

가 완전히 오른쪽 이미지 폴더에 연결됩니다. (Rails 4는 더 이상 기본적으로 non-digest 애셋을 생성하지 않습니다. 아마도 내 앱은 결코 소화되지 않은 이미지 애셋을 사용하지 않았지만 이전에는 전혀 알지 못했습니다!) 다시 한 번 감사드립니다. – Rubytastic

3

"assets/images"에 이미지를 넣으십시오. 보기에

: 당신이 이름의 철자가 잘못되지 않았는지 레일은 자산 폴더에서 이미지를 찾을 수 있다면

image_tag "my_image.png", class: "optional_class" 

API reference

2

은, 반드시, 다음은 컴파일 된 자산 경로로 연결됩니다 . 그것은 이미지를 찾을 수없는 경우, 나는이 사용/자산/레일 2 이후 내 IMAGE_PATH 년대에이 그것을 깰 것으로 보인다 간과 할 수 방법 대신

image_tag("logo.png") 
=> '/assets/logo-f2c87c4e3fda671a619ccb7...png' # if image exists 
=> '/images/logo.png' # if image does not exists in asset folder