1

私は過去2日間すべての回答を試みましたが、問題は私の静的なイメージは、プロダクションでは読み込まれませんが、開発では罰金です。私はさらにbundle exec rake assets:precompile RAILS_ENV=productionを持っています。これが動作し、私の資産をプリコンパイルします。 Public/Assetsフォルダに静止画像が表示されます。私が見つけたRails 4以降のアプリケーションでは、私はHEROKUにアプリケーションをデプロイしましたが、静的イメージは本番環境ではロードされていませんが、開発中です。

Gemfile

source 'http://rubygems.org' 
gem 'rails', '4.2.4' 
group :development do 
    gem 'sqlite3' 
end 
group :production do 
    gem 'pg' 
end 
gem 'searchkick' 
gem 'cocoon' 
gem 'bootstrap-sass', '~> 3.3.6' 
gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.1.0' 
gem 'coffee-script-source', '1.8.0' 
gem 'jquery-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 2.0' 
gem 'sdoc', '~> 0.4.0', group: :doc 
gem 'tinymce-rails', '~> 4.3', '>= 4.3.8' 
gem 'haml' 
gem 'simple_form' 
gem 'paperclip', '~> 4.3.6' 
gem 'omniauth-facebook' 
gem "omniauth-google-oauth2", "~> 0.2.1" 
gem 'acts_as_votable' 
gem 'aws-sdk', '~> 1.66.0' 
gem 'foreman' 
gem 'puma' 
gem 'omniauth' 
gem 'jquery-turbolinks', '~> 2.1' 
gem 'rack-mini-profiler', '~> 0.10.1' 
gem 'execjs', '~> 2.7' 
group :development, :test do 
    gem 'byebug' 
end 
group :development do 
    gem 'web-console', '~> 2.0' 
end 
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 

production.rb

Rails.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 threaded 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  = true 
    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 serving static files from the `/public` folder by default since 
    # Apache or NGINX already handles this. 
    config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 

    # 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 

    # Asset digests allow you to set far-future HTTP expiration dates on all assets, 
    # yet still be able to expire them through the digest params. 
    config.assets.digest = true 

    # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb 

    # 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 

    # Use the lowest log level to ensure availability of diagnostic information 
    # when problems arise. 
    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' 

    # 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 cannot be found). 
    config.i18n.fallbacks = true 

    # Send deprecation notices to registered listeners. 
    config.active_support.deprecation = :notify 

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

    # Do not dump schema after migrations. 
    config.active_record.dump_schema_after_migration = false 
    config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif) 

end 

もう一つ興味深いのは、私の静的なイメージがpublic/assetsしているにもかかわらずだった、イメージタグは、公開を指していない、images/abc.jpgのようSRCリンクを持っていますアセットイメージ

コード

<%= link_to root_path,class:"navbar-brand" do %> 
    <h1><%= image_tag("logo",alt:"Bitnotes") %></h1> 
<% end %> 
+1

とHerokuのにプッシュ?多分問題はそこにあります。 –

+0

イメージタグ –

+0

のコードを確認してください。これをチェックしてください。http://stackoverflow.com/questions/35320418/static-image-assets-in-rails-app-not-displaying-on-heroku-production –

答えて

0

は4日間を試した後、ここで宝石が資産をプリコンパイルすることはできません

gem 'tinymce-rails', '~> 4.3', '>= 4.3.8' 

問題

の上にソリューションです。だから私は、上記の宝石を取り出して、production.rbでこの config.assets.compile = true変更を行った後 application.js

から

//= require tinymce 
//= require tinymce-jquery 

を削除しました。

bundle exec rake assets:precompile RAILS_ENV=production 

最後にプリコンパイルされた資産は、すべての変更をコミットし、イメージタグのためにあなたのコードを追加することができ

git push heroku master

0

このgem 'rails_12factor', group: :productionをGemfileに追加し、Herokuに再度デプロイすることができます。 production.rbファイルにconfig.serve_static_filesを設定する必要はありません。

+0

動作しません。問題は生産中の画像パスが 'public/assets'フォルダを指していません。 'assets/images/filename'を表示しています –

+0

@ChaitanyaYadavどこに画像を配置しますか? – Thanh

+0

'app/assets/images' –

関連する問題