2013-09-25 23 views
14

在rails 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

完全正確的,我怎麼會忘了這一點使用/資產/以來梁2我IMAGE_PATH的,這似乎打破它。 (Rails 4默認不會生成非摘要資產,可能我的應用程序從未使用過消化過的圖像資源,但我從未注意過!)再次感謝 – Rubytastic

3

把你的圖像放在「assets/images」中。

在你看來:

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

API reference

2

確保你沒有拼錯了名字,如果Rails可以發現在資產文件夾中的圖像,然後將鏈接到已編譯的資源路徑。如果不能找到圖像,就會鏈接到圖像文件夾,而不是

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