私のアプリケーションでは、多くのコントローラとたくさんのcssがあります。このため、私は自分のスタイルシートをコントローラーごとにリンクしています。 Railsのガイド上のRubyは、次のことを示唆している:コントローラ固有のスタイルシートだけがレンダリングされます。
あなただけ次を使用して、それぞれのコントローラにコントローラの特定のスタイルシートとJavaScriptファイルを含めることを選ぶことができます。
% = javascript_include_tag paramsは[:コントローラ]%>または<% =をstylesheet_link_tag のparams [:コントローラ]%>
が(私は=ためにスタックオーバーフローブロックの引用の<%から最初<を省略しなければならなかった)
したがって、ここに私のapplication.html.erbファイルの結果の先頭です:私は、ナビゲーションバーのCSSを共有している
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag params[:controller] %>
<%= stylesheet_link_tag params[:controller] %>
、私application.cssファイルで@import [編]で、それは常にうまく動作します。ナビゲーションバーは常に適切にスタイルされています。 問題は、私が特定のページにアクセスしたときに、の最初のページリクエストで、そのコントローラに関連するCSSがロードされていないことです。また、ログでは、コントローラのスタイルシートに対する要求は行われません。しかし、の2番目のページ要求では、スタイルが取得され、ログはスタイルシートが要求されたことを示します。
これは何故ですか?以下は
この問題にはいくつかの関連するコードです:私はラインに
Rails.application.config.assets.precompile += ......
を私のJavaScriptとCSSファイルの名前をすべて追加
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the top of the
* compiled file, but it's generally better to create a new file per style scope.
*
*= require_self
*/
@import 'normalize';
@import 'sass_vars';
@import 'sitewide';
@import "https://fonts.googleapis.com/css?family=Nunito:300,400,700";
そして、私のconfig /初期化子/ assets.rbで
プロジェクトからターボを完全に削除します。あなたの問題を解決する可能性は90%です。 –
それはターボリンクの宝石を取り除くことだけを含んでいますか? – Parker
それは私の問題を解決した、Michal !!!!あなたはあなたのコメントを言い直して答えとして入力する必要がありますので、私はそれをupvoteして、私の質問への答えとしてそれを確認することができます。 – Parker