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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

2049閲覧

RailsのCSSが反映されません!

yuki-

総合スコア4

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/02/19 07:00

編集2020/02/19 08:06

前提・実現したいこと

Ruby/railsで文章を投稿できる簡単なwebサイトを作成しています。
このwebサイトは、gem、redcarpetとrougeを使用しています。
CSSを各ビューファイルに反映させたいです。
また、_rouge.scss.erbを使用したいです。

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

何かしらの動作をするたびに、ターミナルにて、

ActionController::RoutingError (No route matches [GET] "/assets/rouge"):

が表示されます。Chromeにプレビュー表示すると、以前保存した時のCSSが使われており、CSSを変更、保存してもその変更が反映されません。

試したこと

rougeが原因かと思い、一旦/app/assets/stylesheets/application.cssの、

@import 'rouge';

という一文をコメントアウトしてみたところ、先程のターミナルのエラーメッセージは消えましたが、CSSは相変わらず適用されていませんでした。ここで、エラーメッセージはどこにも表示されませんでした。
また、ファイル名を application.scss に書き換えてみましたが、状況は変わりませんでした。
そこで、ファイル名を application.css に戻し、 /*= require rouge */ に書き換えると、

Sprockets::FileNotFound in Learnings#index couldn't find file 'rouge' with type 'text/css'

と表示されたので確認したところ、確かに'rouge'という名前のファイルはありませんでしたが、
/assets/stylesheets/_rouge.scss.erbは存在します。

ソースコード

routes.rb

ruby

1Rails.application.routes.draw do 2 devise_for :users 3 root 'learnings#index' 4 5 get 'learnings' => 'learnings#index' 6 get 'learnings/new' => 'learnings#new' 7 post 'learnings' => 'learnings#create' 8 get 'learnings/:id' => 'learnings#show' 9 delete 'learnings/:id' => 'learnings#destroy' 10 get 'learnings/:id/edit' => 'learnings#edit' 11 patch 'learnings/:id' => 'learnings#update' 12 get '/search' => 'learnings#search' 13 14 get 'users/:id' => 'users#show' 15end

application.css

ruby

1/* 2 * This is a manifest file that'll be compiled into application.css, which will include all the files 3 * listed below. 4 * 5 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's 6 * vendor/assets/stylesheets directory can be referenced here using a relative path. 7 * 8 * You're free to add application-wide styles to this file and they'll appear at the bottom of the 9 * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS 10 * files in this directory. Styles in this file should be added after the last require_* statement. 11 * It is generally better to create a new file per style scope. 12 * 13 *= require_tree . 14 *= require_self 15 */ 16/*= require rouge */

_rouge.scss.erb

ruby

1<%= Rouge::Themes::Github.render(:scope => '.highlight') %>

補足情報(FW/ツールのバージョンなど)

railsのバ-ジョンは5.2.4.1、エディタはAWS, Cloud9を使用しています。

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

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

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

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

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

no1knows

2020/02/19 07:05

application.cssのコードとroutes.rbのコードを記載いただくとより正確な回答がつくかと思います。
yuki-

2020/02/19 07:26

ご指摘いただきありがとうございます。 ただ今、application.cssのコードとroutes.rbのコードを記載しました。 ご一考いただければ幸いです。
guest

回答2

0

/app/assets/stylesheets/application.cssの

CSSのままだと、@importはファイル呼び出しとなってしまいます。

  • ファイル名をapplication.scssに書き換える(Sass処理系が入っている必要があり)
  • /*= require rouge */と、Sprocketsへの指示に置き換える

どちらかを行ってください。

投稿2020/02/19 07:21

maisumakun

総合スコア145930

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

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

yuki-

2020/02/19 07:33

ご回答ありがとうございます。 ファイル名を `application.scss` に書き換えてみましたが、状況は変わりませんでした。 また、ファイル名を `application.css` に戻し、 `/*= require rouge */` と記述すると、 ``` Sprockets::FileNotFound in Learnings#index couldn't find file 'rouge' with type 'text/css' ``` と表示されたので確認したところ、確かに'rouge'という名前のファイルはありませんでしたが、 /assets/stylesheets/_rouge.scss.erbは存在します。 このファイルの中身は、 ``` <%= Rouge::Themes::Github.render(:scope => '.highlight') %> ``` なのですが、これを適用するためにはどうすればよいでしょうか。
yuki-

2020/02/19 07:58

まさにそのようなwebサイトを作成中です! 作成中に、そのページも参考にさせていただきましたが、質問の通りのエラーが起こってしまいます。 rougeのCSSが適用されないだけでなく、通常のCSSですら適用されません。
guest

0

自己解決

何もわからず、とりあえず

RAILS_ENV=production bundle exec rake assets:precompile

このコードを実行していました。
このコードは、新たなcssファイルを作成してくれるもので、実行後はコンパイルされるcssは新たなcssのみであり、旧cssはコンパイルされません。
そのことを知らず、旧cssを変更していました。
新たなcssを変更すると、しっかりと反映されました。

投稿2020/02/19 08:48

yuki-

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問