6

application.cssファイルをsassファイルに変更し、@importを使用して必要なすべてのファイルをプルしたいと思います。次に、application.css.sassをページ固有のsassファイルに@importします。これはすべて開発でうまく機能しますが、herokuの本番環境にプッシュすると次のエラーが発生します:

Error compiling CSS asset
Sass::SyntaxError:  File to import not found or unreadable: application

application.css.sass:

@import "reset"
@import "typography"
@import "buttons"
@import "junk"

$yellow: #f0f090
$orange: #f89818
$blue1: #184898
$blue2: #4888c8

body
 background: ...
 ...
 /* all the rest of the app-wide styling */

uniquePage.css.sass:

@import "application"
/*page specific styling*/

次に、application.cssとは異なるものが必要なページで

!!! 5
%html
  %header       
    = stylesheet_link_tag "uniquePage"
4

3 に答える 3

5

application.scssに変更する必要があります:)

次の2つのRailsCastを確認してください。

http://railscasts.com/episodes/279-understanding-the-asset-pipeline

http://railscasts.com/episodes/282-upgrading-to-rails-3-1

シモーネの提案に+1

于 2011-10-13T08:42:07.963 に答える
5

Rails 3.1ではapplication.css、マニフェストファイルとして使用することを目的としています。名前を変更したり、requireまたはincludeディレクティブを除いてコンテンツを内部に配置したりしないでください。

目的に応じて別のファイル名を使用してください。

また、 SCSS@import構文はパーシャルを使用するようなものであることに注意してください。@import applicationファイルをインポートする場合は、_applicationではなく、を呼び出す必要がありapplicationます。

于 2011-10-13T08:33:48.463 に答える
3

次に、質問は、CSSセットごとに異なるマニフェストファイルを作成するにはどうすればよいかということになると思います。

これを行うにはいくつかの方法があります。

1.ページシートごと

これは現在行っていることですが、アプリケーションと一意のページの両方で@importsを使用して、シートを少し異なる方法で整理します。(アプリケーションを一意のページにインポートするのではなく)。

2.それらのページだけに2枚目のシートを使用します

そのページの変更だけを含む2枚目のシートを作成できます。すべてのページにアプリケーションシートがあり、必要な変更を加えるだけで2番目のタグが一意のページに追加されます。これには追加のhttpリクエストが必要です。

3.CSSを再編成します

余分なCSSが実質的でない限り、メインファイルにコードを含めるようにリファクタリングする方がよい場合があります。一意のページのbodyタグにクラスを追加し、それを使用するページに合わせてCSSを調整するのは簡単です。

そのCSSを(メンテナンスを支援するために)一意のページのファイルに入れて、メインファイルに@importすることができます。

原則として、CSSの変更が大幅でない限り、それらをメインのCSSにマージしようとします。そうでない場合は、オプション1を選択します。

于 2011-10-13T17:47:35.713 に答える