2013-09-25 26 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 
相关问题