内容
AWSにデプロイをしています。S3を使用して画像投稿サイトを作っていますが、サイトを表示しようとすると下記のエラーが出てしまいます。内容はアセットコンパイルができていない、ということだと思うのですが、修正方法をいくつか試しても解消されません。
修正方法についてご教示いただけませんでしょうか。
エラー内容
I, [2020-11-10T13:22:00.340504 #3574] INFO -- : [8fa5a5e5-cc61-482c-ac48-94b718f559c7] Completed 500 Internal Server Error in 7ms (ActiveRecord: 0.7ms) F, [2020-11-10T13:22:00.341260 #3574] FATAL -- : [8fa5a5e5-cc61-482c-ac48-94b718f559c7] F, [2020-11-10T13:22:00.341305 #3574] FATAL -- : [8fa5a5e5-cc61-482c-ac48-94b718f559c7] ActionView::Template::Error (The asset "niiaknync2eme6z6ulxz" is not present in the asset pipeline.): F, [2020-11-10T13:22:00.341410 #3574] FATAL -- : [8fa5a5e5-cc61-482c-ac48-94b718f559c7] 3: <div class="posts"> [8fa5a5e5-cc61-482c-ac48-94b718f559c7] 4: <div class="card_left"> [8fa5a5e5-cc61-482c-ac48-94b718f559c7] 5: <% if micropost.image? %> [8fa5a5e5-cc61-482c-ac48-94b718f559c7] 6: <%= image_tag micropost.image, class:"micropost_image" %> [8fa5a5e5-cc61-482c-ac48-94b718f559c7] 7: <% else %> [8fa5a5e5-cc61-482c-ac48-94b718f559c7] 8: <%= image_tag 'no_image.png', class:"micropost_image" %> [8fa5a5e5-cc61-482c-ac48-94b718f559c7] 9: <% end %> F, [2020-11-10T13:22:00.341435 #3574] FATAL -- : [8fa5a5e5-cc61-482c-ac48-94b718f559c7] F, [2020-11-10T13:22:00.341471 #3574] FATAL -- : [8fa5a5e5-cc61-482c-ac48-94b718f559c7] app/views/microposts/_microposts.html.erb:6:in `_app_views_microposts__microposts_html_erb___4440809233764259164_67740' [8fa5a5e5-cc61-482c-ac48-94b718f559c7] app/views/microposts/index.html.erb:5:in `block in _app_views_microposts_index_html_erb__744060159881866212_67600' [8fa5a5e5-cc61-482c-ac48-94b718f559c7] app/views/microposts/index.html.erb:4:in `_app_views_microposts_index_html_erb__744060159881866212_67600'
試したこと
・「rake assets:precompile RAILS_ENV=production」を実行しました(まだ自動デプロイを設定しておらず、本番環境のみで実行しています)。特にエラーはありませんでした。
・「config/envitonments/production.rb」に「config.assets.compile = true」を記述しました。
・Rails cでRails.application.config.assets.prefixを確認しましたが、=> "/assets"でassets以下にファイルがなく、プリコンパイルができていない状態だと思います。
画像表示部分(_microposts.html.erb)
<% if micropost.image? %> <%= image_tag micropost.image, class:"micropost_image" %> <% else %> <%= image_tag 'no_image.png', class:"micropost_image" %> <% end %>
config/encironmnets/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 = false config.action_controller.perform_caching = true # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). # config.require_master_key = true # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. config.public_file_server.enabled = 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 = true # ここをfalseからtrueに修正 # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb # Enable serving of images, stylesheets, and JavaScripts from an asset server. # config.action_controller.asset_host = 'http://assets.example.com' # 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 # Mount Action Cable outside main process or domain # config.action_cable.mount_path = nil # config.action_cable.url = 'wss://example.com/cable' # config.action_cable.allowed_request_origins = [ 'http://example.com', /http://example.*/ ] # 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 = [ :request_id ] # Use a different cache store in production. # config.cache_store = :mem_cache_store # Use a real queuing backend for Active Job (and separate queues per environment) # config.active_job.queue_adapter = :resque # config.active_job.queue_name_prefix = "portfolio_#{Rails.env}" config.action_mailer.perform_caching = false # 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 # Use a different logger for distributed setups. # require 'syslog/logger' # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') if ENV["RAILS_LOG_TO_STDOUT"].present? logger = ActiveSupport::Logger.new(STDOUT) logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) end # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false end
config/environments/development.rb
Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. # In the development environment your application's code is reloaded on # every request. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. config.cache_classes = false # Do not eager load code on boot. config.eager_load = false # Show full error reports. config.consider_all_requests_local = true # Enable/disable caching. By default caching is disabled. # Run rails dev:cache to toggle caching. if Rails.root.join('tmp', 'caching-dev.txt').exist? config.action_controller.perform_caching = true config.cache_store = :memory_store config.public_file_server.headers = { 'Cache-Control' => "public, max-age=#{2.days.to_i}" } else config.action_controller.perform_caching = false config.cache_store = :null_store end # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = false config.action_mailer.perform_caching = false # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log # Raise an error on page load if there are pending migrations. config.active_record.migration_error = :page_load # Highlight code that triggered database queries in logs. config.active_record.verbose_query_logs = true # Debug mode disables concatenation and preprocessing of assets. # This option may cause significant delays in view rendering with a large # number of complex assets. config.assets.debug = true # Suppress logger output for asset requests. config.assets.quiet = true # Raises error for missing translations # config.action_view.raise_on_missing_translations = true # Use an evented file watcher to asynchronously detect changes in source code, # routes, locales, etc. This feature depends on the listen gem. config.file_watcher = ActiveSupport::EventedFileUpdateChecker # config.file_watcher = ActiveSupport::FileUpdateChecker end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。