@user80845 (Tyler)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Ruby on Railsでのリセットcssの使い方を教えてください

解決したいこと

Railsでviewのデザインを作成するにあたって、リセットcssを適用させようとしていますが、cssの反映とコードの書き方が気になります。

Rails内ディレクトリでapp/assets/stylesheetsへ以下のファイルを作成しました
application.css
destyel.css
posts_index.css

destyle.cssは調べて出てきたリセットcssをそのまま利用しています。
posts_index.cssはindex.posts/index.html.erbのviewのみに適用するように作成したcssファイルです。

application.cssのファイル先頭に

/*
*= require destyle
*= require_self
*= require_tree .
*/
このようにコードは記入しました。

これだけだと、posts/index.html.erbのviewにはうまく反映されなかったので、applcation.html.erb内に
<%= stylesheet_link_tag "destyle", "data-turbo-track": "reload" %>
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
<%= stylesheet_link_tag "posts_index", "data-turbo-track": "reload" %>
このようなcssの読み込みコードを追加しました。

結果としてはcssの反映はうまくいってるのですが、viewが増えてページごとにcssファイルを作成する場合は、都度appication.html.erbファイル内に
<%= stylesheet_link_tag ~~~~
ってコードを追加しないといけないのでしょうか?

Railsが便利だったので、作業に少し違和感があり自分のやり方が正しいのか気になるので、良いcssの適用方法があれば教えていただきたいです。

0 likes

1Answer

Railsのバージョンはいくつですか?

Gemfileは sprockets-rails or
propshaft のどちらになっていますか?

/*
*= require destyle
*= require_self
*= require_tree .
*/

は sprockets-railsの機能で、(アセットの
コンパイル時に)require対象のCSSファイルを
記述しているCSSファイル内に展開(中身を
コピー)します。

propshaftにこの機能はないので、
propshaftを利用している場合、
↑の記述は唯のコメントです。

↑のsprockets-railsの機能と同等のことを
propshaft利用時に行いたい場合には
いくつかの方法がありはします。

具体的には、①CSS→SCSS、
(SCSSの@importで指定したCSS/SCSS
ファイルを(SCSSのCSSコンパイル時に)
展開する、)
cssファイルの拡張子をcssからscssに
変更→importmap-railsを利用している
ならdartsass-railsをインストール or
cssbundling-railsを利用しているなら
sass(NPMパッケージ)をインストール
→設定 。
②vite_railsを利用、viteにはCSSの
@importの展開機能があります。

詳しくは(SCSS etcについては)
調べてください。

Railsプロジェクト etcにおいて、ページ毎に
cssファイルを作成することはありません。

CSSファイルはテキストファイルであり、
CSSフレームワークでもない限り、
CSSファイルのファイルサイズはたかが
しれているので、CSSファイルを(細かく)
分割してブラウザに読み込ませるのは
メリットよりもデメリットのほうが大きい
です。

CSSフレームワーク(bootstrap/tailwind css etc)と
それ以外をわけるくらいで(通常は)必要十分だと
思います。

1Like

Your answer might help someone💌