質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.92%

AWSの本番環境でアセットファイルのコンパイルエラー

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 182

maruo19

score 4

前提・実現したいこと

AWSの本番環境でアセットファイルのコンパイルを実行したい

発生している問題・エラーメッセージ

ターミナル エラーメッセージ

[ec2-user@ip-172-31-42-166 picsta]$ bundle exec rails assets:precompile RAILS_ENV=production
yarn install v1.22.4
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.06s.
rails aborted!
Uglifier::Error: Unexpected token: name (html). To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true).
--
 19354 (function() {
 19355   this.App || (this.App = {});
 19356 
 19357   App.cable = ActionCable.createConsumer();
 19358 
 19359 }).call(this);
 19360 $(function(){
 19361   function buildHTML(comment){
    =>     let html =
 19363       `<div class="PostInfo__yourComments-wrapper">
 19364         <a href="/users/${comment.user_id}"><img src="${comment.image}" class="PostInfo__yourComments--image UserInfoShow-image"></a>
 19365         <a class="PostInfo__yourComments--name UserInfoShow-name", href="/users/${comment.user_id}">${comment.user_name}</a>
 19366         <div class="PostInfo__yourComments--contents">
 19367           ${comment.content}
 19368         </div>
 19369       </div>`
 19370     return html
==
/var/www/picsta/bin/rails:9:in `<top (required)>'
/var/www/picsta/bin/spring:15:in `require'
/var/www/picsta/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
[ec2-user@ip-172-31-42-166 picsta]$ tail -f log/production.log
F, [2020-07-20T05:53:00.127073 #32450] FATAL -- : [54eadd09-9f36-4207-8e87-cae6d91be591] ActionView::Template::Error (The asset "application.css" is not present in the asset pipeline.):
F, [2020-07-20T05:53:00.127195 #32450] FATAL -- : [54eadd09-9f36-4207-8e87-cae6d91be591]      5:     %title Picsta
[54eadd09-9f36-4207-8e87-cae6d91be591]      6:     = csrf_meta_tags
[54eadd09-9f36-4207-8e87-cae6d91be591]      7:     = csp_meta_tag
[54eadd09-9f36-4207-8e87-cae6d91be591]      8:     = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload'
[54eadd09-9f36-4207-8e87-cae6d91be591]      9:     = javascript_include_tag 'application'
[54eadd09-9f36-4207-8e87-cae6d91be591]     10:   %body
[54eadd09-9f36-4207-8e87-cae6d91be591]     11:     = render 'layouts/notifications'
F, [2020-07-20T05:53:00.127229 #32450] FATAL -- : [54eadd09-9f36-4207-8e87-cae6d91be591]   
F, [2020-07-20T05:53:00.127253 #32450] FATAL -- : [54eadd09-9f36-4207-8e87-cae6d91be591] app/views/layouts/application.html.haml:8:in `_app_views_layouts_application_html_haml___269755376428411494_39720900'

該当のソースコード

上記のエラーが出ているJSファイルの箇所の部分↓
※ローカル環境ではエラーは出ていません。

$(function(){
  function buildHTML(comment){
    let html =
      `<div class="PostInfo__yourComments-wrapper">
        <a href="/users/${comment.user_id}"><img src="${comment.image}" class="PostInfo__yourComments--image UserInfoShow-image"></a>
        <a class="PostInfo__yourComments--name UserInfoShow-name", href="/users/${comment.user_id}">${comment.user_name}</a>
        <div class="PostInfo__yourComments--contents">
          ${comment.content}
        </div>
      </div>`
    return html
  }
  $('.Form').on('submit', function(e){
    e.preventDefault()
    let formData = new FormData(this);
    let url = $(this).attr('action');

    $.ajax({
      url: url,
      type: "POST",
      dataType: 'json',
      data: formData,
      processData: false,
      contentType: false
    })
    .done(function(data) {
      let html = buildHTML(data);
      $('.PostInfo__yourComments').append(html);
      $('.PostInfo__contents--area').val('');
      $('.PostInfo__yourComments').animate({ scrollTop: $('.PostInfo__yourComments')[0].scrollHeight});
      $('.PostInfo__contents--btn').prop("disabled", false);
    })
    .fail(function() {
      console.log("error");
    })
  });
});
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.new(harmony: true)
  # config.assets.css_compressor = :sass

  # Do not fallback to assets pipeline if a precompiled asset is missed.
  config.assets.compile = 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

  # Store uploaded files on the local file system (see config/storage.yml for options)
  config.active_storage.service = :local

  # 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 = "picsta_#{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/production.rb を以下に変更

- config.assets.js_compressor = :uglifier

+ config.assets.js_compressor = Uglifier.new(harmony: true)
- config.assets.compile = false

+ config.assets.compile = true
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • maruo19

    2020/07/21 11:18

    すいません。今確認したところ、反映されてませんでした。。
    ローカルを反映されるには、もう一度クローンし直さなくてはいけないでしょうか。。。?

    キャンセル

  • web_inago

    2020/07/21 11:19

    git pull というコマンドがあるのでそれでできると思います!

    キャンセル

  • maruo19

    2020/07/21 11:28

    無事にできました!!助かりました!
    丁寧に教えてくださりありがとうございました!!

    キャンセル

回答 1

checkベストアンサー

0

config.assets.js_compressor = Uglifier.new(harmony: true)
が本番サーバー側で反映されていないのでサーバー側のリポジトリを更新して、
再度プリコンパイルを実行してみてください

その後、

ActionView::Template::Error (The asset "application.css" is not present in the asset pipeline.):

が発生する場合は、
同じくproduction.rbの

config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?


config.public_file_server.enabled = true


に変更する、もしくはpresent?がtrueになるようにサーバー側で環境変数を設定してください。
こちらも変更後にサーバー側のリポジトリを最新にする必要があります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/21 11:28

    無事にできました!!助かりました!
    丁寧に教えてくださりありがとうございました!!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る