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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

894閲覧

rails The asset "star-on.png" is not present in the asset pipeline.

youhei0912

総合スコア12

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/08/19 18:04

編集2019/08/20 02:39

現在、rails で商品の評価機能を付けているのですが、星の画像がうまく表示されません。星の画像をassetsの直下に置いた場合以下のようなエラーが発生してしまいます。

Sprockets::Rails::Helper::AssetNotFound in Reviews#create
The asset "star-on.png" is not present in the asset pipeline.

しかし、assets/imagesに置いた場合、エラーは発生しないのですが、画像の表示がされません。原因としては
1、assets pipelineが上手く繋げられていなく、precompileが的確に設定できていないこと。
2、star-on.png等の画像が入っていないこと。
3、jsとの接続ができていないこと。

大まかにこの三点が現在考えられる原因です。ここ三日間程調べながら解決方法を考えていたのですが、解決できずにいるので質問させて頂きました。

コードも以下に貼っておくので、この原因がわかる方がいましたら是非お力を貸していただきたいです。

reviews_controller.rb

class ReviewsController < ApplicationController before_action :require_user_logged_in def index end def show end def create @user = current_user @review = Review.new @product = Product.where(params[:product_id]) @review = @user.reviews end end

create.html.erb

<%= form_for :reviews,url: {action: :create} do |f| %> <%= f.hidden_field :product_id, { value: @product.ids} %> <div class="form-group row"> <%= f.label :title, 'タイトル ', class:'col-md-3 col-form-label' %> <div class="col-md-9"> <%= f.text_field :title, class: "form-control" %> </div> </div> <div class="form-group row" id="star"> <%= f.label :rate,'評価 ', class:'col-md-3 col-form-label' %> <%= f.hidden_field :rate, id: :review_star %> </div> <script> $('#star').raty({ size : 36, starOff: '<%= asset_path('star-off.png') %>', starOn : '<%= asset_path('star-on.png') %>', starHalf: '<%= asset_path('star-half.png') %>', scoreName: 'post[rate]', half: true, }); </script> <div class="form-group row"> <%= f.label :content, '口コミ内容 ', class:'col-md-3 col-form-label' %> <div class="col-md-9"> <%= f.text_area :content, class: "form-control", rows: "8", placeholder:'口コミ内容がなくても、タイトルと評価のみで投稿できます。 まずは投稿してみましょう!投稿してから編集もできますよ!' %> </div> </div> <div class="form-group row justify-content-end"> <div class="col-md-9"> <%= f.submit '投稿する', class:"btn btn-success" %> </div> </div> <% end %>

asset.rb

Rails.application.config.assets.version = '1.0' Rails.application.config.assets.paths << Rails.root.join('node_modules') Rails.application.config.assets.precompile += %w( *.js )

production.rb

config.assets.compile = true

お手数お掛けしますが、よろしくお願いします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2019/08/19 22:13

asset.rb の全体を見せて頂けますか。コメントだけの行は無くてもそのままでも
youhei0912

2019/08/20 02:41

コメント有難うございます。今情報の方修正させて頂きました。よろしくお願い致します。
guest

回答1

0

Rails.application.config.assets.precompile += %w( *.js )

ここでエラー起きていませんか?
development環境で良いので
rails assets:precompile
してみて下さい

投稿2019/08/20 07:55

winterboum

総合スコア23333

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

youhei0912

2019/08/20 14:57

rails assets:precompile やってみたのですが、変化なしでした..
winterboum

2019/08/21 00:47

エラー出ませんでしたか、。、、、 assets.precompile += %w( *.js ) という記述で通るのか?というのが疑問なのです。 application.js に //= require_tree . と記述してそちらにとり込むか assets.precompile += %w( foo bar hoge ) と個別に記述するか、してみたらどうなりますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問