4

Rails3.2と最新のSassおよびCoffeeRailsGemsにメジャーアップグレードを行ったところですが、アプリケーションファイルがApplication.css.scssとしてレンダリングされません。私はそれを私のhtmlにそのように持っていました:

  <%= stylesheet_link_tag 'application.css.scss' %>

そして、開発モードでページソースを見ると、

  <link href="/assets/application.css.scss.css" media="screen" rel="stylesheet" type="text/css" />

一体何が起こっているのか!?

stylesheet_link_tag内に配置したすべてのものに.cssが追加されているように見えるので、ページソースに「application」のままにしておくと、application.cssなどがあります。

4

3 に答える 3

4

タグの適切な形式は次のとおりです。

<%= stylesheet_link_tag 'application' %>

Rails は自動的に.scssファイルをファイルにコンパイルし、.css次に正しいファイルを自動的にインポートします。それはすべてあなたのために世話をします。

于 2012-05-08T05:10:58.337 に答える
1

に拡張子を付けない場合はstylesheet_link_tag.cssが自動的に付けられます。ただし、指定しているときに拡張子を追加する理由はわかりません.scss

また、必要なのはそれだけ<%= stylesheet_link_tag 'application' %>であるはずです。

stylesheet_link_tag 詳細については、こちらのドキュメントを参照してください。

于 2012-05-07T00:48:36.167 に答える
1

Rails 3.2 で Sprockets を使用してこれを行う「デフォルト」の方法は、Sprockets マニフェスト コードを含む application.css (application.css.scss ではない) というファイルを用意することだと思います。これは次のようになります...

application.css (アプリ/アセット/スタイルシート)

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. 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
 *= require main_scss_file
*/

内部にコンテンツを追加する require_self と、メインの scss ファイルへの参照である require some_other_file の少なくとも 2 行が必要です。rake assets:precompile のデフォルトの動作は、application.js とアプリケーション css をコンパイルすることです。

Rail ジェネレーターによって生成された production.rb コードは、application.css がデフォルトでコンパイルされることを指定します。(構成/環境)

  # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
  # config.assets.precompile += %w( search.js )
  config.assets.precompile += %w( home.js )

アプリケーション.erb

<%= stylesheet_link_tag 'application' %>
于 2012-05-08T04:58:04.513 に答える