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

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

ただいまの
回答率

88.60%

Sprockets::Rails::Helper::AssetNotFound in Books#indexとは

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 6,183

-maeji-

score 39

現在簡単なアプリケーションを作成して練習しています。
scaffoldで作成したものに、bootstrapを適用させるという流れの中で、質問のエラーが起きました。
イメージ説明
自分で行ったことは、まずsprocketsやHelper、アセットについて初めて見かけたので、これについてググってみました。
そして当てずっぽうかもしれませんが、仮説を立ててみましたが、未だ解決に至らないので一緒にみてもらえないでしょうか。

1、まずアセットについて調べてみました

"Assetとは、Webアプリケーションの直接のレスポンス以外の構成要素のことを指します。Javascript、CSS、画像などがこれにあたります。Asset Pipelineを使うことでこのAssetを簡単に利用出来るようになります。"

Javascript、CSS、画像。これらをAssetという。(railsとは別の言語や外部リンクのこと?)というところまで把握しました。

2、アセットパイプライン

"JavaScriptやcss、画像ファイルといったHTMLに付随する細々としたファイルたち(アセットファイル)を連結したり圧縮したりすることで効率的にアクセスすることができるrailsの機能のこと。"

アセットパイプラインでjavascriptとcssがまとめられるということ、
ERB、CoffeeScript、SCSS などが使えるようになるということまでわかった。

3、Sprocketsの役割

>"アセットパイプラインの基盤になるgem。
アセットファイルへのパスの管理。圧縮。結合。アセットファイル間の依存性の解決。アセットファイルのコンパイル。翻訳。"

4、Helperについて

"viewをよりシンプルにDRYに書くためのモジュール。view以外もhelpできるけど、基本的にはviewをhelpしてくれるもの"

これらを踏まえての推測

Sprockets::Rails::Helper::AssetNotFound in Books#index
Indexの14行目のアセットがない。
アセットとはJSとCSSのことで、railsではアセットパイプラインという機能がある。
Sprocketsとはアセットパイプラインの基盤になるgemのことのようだが、自分のファイルにはsprockets〜というgemが編集されていない。
Helperとはビューを助ける、シンプルに書くためにコードを補助するものと解釈した。
Q⓵>Sprocketsとはアセットパイプラインの基盤になるgemのことのようだが、自分のファイルにはsprockets〜というgemが編集されていない。

A⓵>gem fileに sprocketsを追加する。⇨gem 'sprockets’を記載する

Q⓶Helperとはビューを助ける、シンプルに書くためにコードを補助するものと解釈した。

A⓶>index画面の14行目を補助するコードをヘルパーに書かなくてはいけない。
application_heiperかbooks_helperか不明。

〜推測に対して〜
qiitaで見つけた方法でgem 'sprockets' というのがあり、現時点で自分でできそうなのはこれを試すことですが、ググっていてもなかなか見当たらないので、試すのに躊躇しています。
長くなってしまいましたが、お願いいたします。

:追記
Gemfile

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.1'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.2'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby

# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use ActiveStorage variant
# gem 'mini_magick', '~> 4.8'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.1.0', require: false

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  # Easy installation and use of chromedriver to run system tests with Chrome
  gem 'chromedriver-helper'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]



#あえて開けて記入
gem 'less-rails'

gem 'therubyracer'

gem 'execjs'

gem 'twitter-bootstrap-rails'


index.html.erb

<%- model_class = Book -%>
<div class="page-header">
  <h1><%=t '.title', :default => model_class.model_name.human.pluralize.titleize %></h1>
</div>
<table class="table table-striped">
  <thead>
    <tr>
      <th><%= model_class.human_attribute_name(:id) %></th>
      <th><%= model_class.human_attribute_name(:title) %></th>
      <th><%= model_class.human_attribute_name(:author) %></th>
      <th><%= model_class.human_attribute_name(:publisher) %></th>
      <th><%= model_class.human_attribute_name(:regist_date) %></th>
      <th><%= model_class.human_attribute_name(:created_at) %></th>
      <th><%=t '.actions', :default => t("helpers.actions") %></th>
    </tr>
  </thead>
  <tbody>
    <% @books.each do |book| %>
      <tr>
        <td><%= link_to book.id, book_path(book) %></td>
        <td><%= book.title %></td>
        <td><%= book.author %></td>
        <td><%= book.publisher %></td>
        <td><%= book.regist_date %></td>
        <td><%=l book.created_at %></td>
        <td>
          <%= link_to t('.show', :default => t("helpers.links.show")),
                      book_path(book), :class => 'btn btn-default btn-xs' %>
          <%= link_to t('.edit', :default => t("helpers.links.edit")),
                      edit_book_path(book), :class => 'btn btn-default btn-xs' %>
          <%= link_to t('.destroy', :default => t("helpers.links.destroy")),
                      book_path(book),
                      :method => :delete,
                      :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) },
                      :class => 'btn btn-xs btn-danger' %>
        </td>
      </tr>
    <% end %>
  </tbody>
</table>

<%= link_to t('.new', :default => t("helpers.links.new")),
            new_book_path,
            :class => 'btn btn-primary' %>

application.html.erb

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><%= content_for?(:title) ? yield(:title) : "Dokusho" %></title>
    <%= csrf_meta_tags %>

    <%= stylesheet_link_tag "application", :media => "all" %>

    <!-- For third-generation iPad with high-resolution Retina display: -->
    <!-- Size should be 144 x 144 pixels -->
    <%= favicon_link_tag 'apple-touch-icon-144x144-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '144x144' %>

    <!-- For iPhone with high-resolution Retina display: -->
    <!-- Size should be 114 x 114 pixels -->
    <%= favicon_link_tag 'apple-touch-icon-114x114-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '114x114' %>

    <!-- For first- and second-generation iPad: -->
    <!-- Size should be 72 x 72 pixels -->
    <%= favicon_link_tag 'apple-touch-icon-72x72-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '72x72' %>

    <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
    <!-- Size should be 57 x 57 pixels -->
    <%= favicon_link_tag 'apple-touch-icon-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png' %>

    <!-- For all other devices -->
    <!-- Size should be 32 x 32 pixels -->
    <%= favicon_link_tag 'favicon.ico', :rel => 'shortcut icon' %>

    <%= javascript_include_tag "application" %>

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
    <![endif]-->
  </head>
  <body>

    <div class="navbar navbar-default navbar-static-top">
      <div class="container">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="#">Dokusho</a>
        <div class="navbar-collapse collapse navbar-responsive-collapse">
          <ul class="nav navbar-nav">
            <li><%= link_to "Link1", "/path1"  %></li>
            <li><%= link_to "Link2", "/path2"  %></li>
            <li><%= link_to "Link3", "/path3"  %></li>
          </ul>
        </div>
      </div>
    </div>

    <div class="container">
      <div class="row">
        <div class="col-lg-9">
          <%= bootstrap_flash %>
          <%= yield %>
        </div>
        <div class="col-lg-3">
          <div class="well sidebar-nav">
            <h3>Sidebar</h3>
            <ul class="nav nav-list">
              <li class="nav-header">Sidebar</li>
              <li><%= link_to "Link1", "/path1"  %></li>
              <li><%= link_to "Link2", "/path2"  %></li>
              <li><%= link_to "Link3", "/path3"  %></li>
            </ul>
          </div><!--/.well -->
        </div><!--/span-->
      </div><!--/row-->

      <footer>
        <p>&copy; Company 2019</p>
      </footer>

    </div> <!-- /container -->

  </body>
</html>
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

AssetNotFoundということで、該当するファイル(apple-touch-icon-144x144-precomposed.png)を置いていない、ということはないでしょうか。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/01/12 15:19

    回答ありがとうございます。
    この場合、indexを編集してあげればいいのでしょうか。

    gem 'sprokcets-rails'、webpacker?等を取り込んでないのですが、それが原因でプリコンパイルできていないということでしょうか

    キャンセル

  • 2019/01/12 16:21

    iOS向けアイコンが不要なら、views/layouts/application.html.erbの該当する行を削ってください。

    アイコンが必要なら、このファイル名のファイルを置いてください。

    (Sprocketsがなかった場合、別なエラーとなると思われます)

    キャンセル

  • 2019/01/14 17:35

    ありがとうございます。
    該当のコードを削除したら、うまく行きました。
    (ちなみにwebpackを使用するのは、開発の途中からでも可能なのでしょうか。)
    ありがとうございました。

    キャンセル

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

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

関連した質問

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