8004


views内にあるindex.html.erbを編集し、mycss.cssを反映させようとしていますがうまくいきません。以下の二つのパターンでコードをhtml内に書き試しましたがうまくいきませんでした。  
初歩的で申し訳ありませんが宜しくお願いします。

1.  

[code]

    <%= stylesheet_link_tag "mycss", media: "all","data-turbolinks-track" => true %>
    
[/code]

2.  

[code]

    <link href="css/mycss.css" rel="stylesheet" type="text/css">
    
[/code]


CC BY-SA 3.0
2015-03-17T00:45:19.820
7993
2020-02-25T10:51:56.047
2020-02-25T10:51:56.047
32986
8863
question
ruby-on-rails css
railsでcssを使うにはどうすれば良いでしょうか？


落ち着いて。Railsだから反映されないという事は、滅多にありません。  
なぜならブラウザが取得しているのは、普通のHTMLコンテンツに過ぎないからです。

まず「ファイルが読み込めていない」のか「反映されていない」のか切り分けましょう。  
直接URL叩いてもいいのですがF12(開発者ツールと呼ばれるもの)を開いてください。  
例えばChromeならばNetworksタブからmycss.cssの読み込みに、エラーが生じて赤字となっていないか確認してください。

もしエラーが生じている場合。アクセスしようとしたパスを確認して、自分の想定と正しいかどうか確認してください。直接そのURLへアクセスしてみて、もしrailsのroutes-
errorだった場合は、おそらくファイルの配置が正しくありません。この場合は、アクセスしようとしたURL。ソース表示から見えるlinkタグ。実際に配置したファイルのパス。この3つの情報が必要になります。

もし正しくファイルが読み込めている場合は、おそらくCSS記述の問題です。  
railsとは関係なく「このCSS定義が反映されない」みたいな話になりますので再度整理してください。試しに mycss.css には`body {
background-color: #FFA; }`だけのようなミニマム記述して、反映されるか確認しましょう。

これは、現時点での想定ですが。直接linkタグいれたパターンが  
`css/mycss.css`となっていますが。`/css/mycss.css`の間違いではありませんか？  
これですと`http://example.com/admin/user/1`みたいなURLから参照した場合  
`http://example.com/admin/user/css/mycss.css`へのアクセスとなりますので  
(public配置の場合)`/public/admin/user/css/mycss.css`にファイルを設置しなくてはなりません。

もし貴方が`/public/css/mycss.css`へファイルを設置している場合。記述するべきは`stylesheet_link_tag
"/css/mycss"` か `href="/css/mycss.css"`のはずです。

## 追記

stylesheet_link_tag の パス生成ロジックは、  
stylesheet_path (
<http://apidock.com/rails/ActionView/Helpers/AssetUrlHelper/stylesheet_path>
)に委任しています。 exampleに記述された生成結果の例も確認してください。


CC BY-SA 3.0
2015-03-17T05:46:46.230
8004
2015-03-17T05:51:58.513
2015-03-17T05:51:58.513
8335
8335
7993
answer


プロジェクトの `app/assets/stylesheets/` 配下に `mycss.css`を置きましょう。自動的に読み込まれます。

`stylesheet_link_tag`での指定もこの場合は必要ありません。


CC BY-SA 3.0
2015-03-17T09:41:23.617
8019
2015-03-17T09:41:23.617
3271
7993
answer