2011-09-18 9 views
18

私は、Agile Web Development with Rails 4th editionに従っており、レール3.1のsprocket cssに問題があります。Sprockets :: CircularDependencyError in Store#index

コードCSSは次のとおりです。

http://media.pragprog.com/titles/rails4/code/rails31/depot_e/app/assets/stylesheets/application.css.scss

私はアプリ/資産/スタイルシート/ aplication.css.scssのCSSコードを変更した場合、私は次のエラーをキャッチ:

Sprockets::CircularDependencyError in Store#index 

Showing /home/ubuntu/Desktop/Depot/app/views/layouts/application.html.erb where line #5 raised: 

/home/ubuntu/Desktop/Depot/app/assets/stylesheets/application.css.scss has already been required 
Extracted source (around line #5): 

2: <html> 
3: <head> 
4: <title>Pragprog Books Online Store</title> 
5: <%= stylesheet_link_tag "application" %> 
6: <%= javascript_include_tag "application" %> 
7: <%= csrf_meta_tag %> 
8: </head> 
Rails.root: /home/ubuntu/Desktop/Depot 

Application Trace | Framework Trace | Full Trace 
app/views/layouts/application.html.erb:5:in`_app_views_layouts_application_html_erb___1008723970_81658620' 

なぜ私は余白の値やaplication.css.scssのパディング値を変更する場合、私はこのエラーが表示されます理解していない。

ありがとうございました。

+0

サーバーを再起動すると消えますか? –

+0

私はサーバーを再起動しましたが、問題は解決されていません。もし私がCSSを無効にしていれば、ページは動作しますが、CSSはありません。私はaplication.html.erbから<%= stylesheet_link_tag "アプリケーション"% "を削除しました。その後、ページは正常に動作しますが、CSSはありません。 – hyperrjas

+0

再現可能な例を入れてください。 –

答えて

52

app/assets/stylesheets/application.cssを削除する必要があります。

+0

これは私の問題を解決しました。ありがとう。 –

+1

この問題を解決するために私ができないことを知っています。これはクイックフィックスと呼ばれます) –

+0

ええ、 'require_tree。'は "このディレクトリとすべての子にすべてを必要とする"を意味し、生成された 'application.css'にあります。かなり奇妙なことに、デフォルトでは、Railsは「すべてのページに常にすべてのCSSを含める」と言っていますか? – AlexChaffee

2

SCSSのインストール後も同じ問題が発生していました。私はヘッダー内の場所にあるデフルトコメントを削除することで問題を解決しました。だから、この:

/* 
* 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 
*= require_tree . 
*/ 

#wrapper { 
    width: 980px; 
    margin: 0 auto; 
} 

はこの就任:

#wrapper { 
    width: 980px; 
    margin: 0 auto; 
} 
+1

これらの「デフォルトコメント」は「ディレクティブ」と呼ばれ、それがなければ、アセットCSSファイルを明示的にインクルードしてプリコンパイルする必要があります。これはあなたにとってはいいかもしれないが、最近は標準のRailsではありません。 – AlexChaffee

+0

修正します。これは数年前、私はこの問題を抱えていました。私はもはやではなく、すべてが期待どおりに働いています。私は私の問題が私が当時間違っていたことだったと確信しています。 – Ken

14

私は同様の問題があった:
Asset pipeline not precompiling sass

マニフェストファイルがツリーのファイルを必要とする場合に循環依存関係が発生しました。とにかくSassはこれを行いますので、必要ありません。

削除:

*= require_tree . 
+3

どうしてこのように書かれていないのですか? .NETから来て、これは非常に混乱しています。私はかなり多くのすべてのためにGoogleにする必要があります。 :/ –

+0

アセットパイプラインはかなり新しく、多くの人に混乱します。それはより簡単になります:) – Rimian

+0

Greate yar、あなたは私の多くの時間を救った。 –

0

ただ、 "application.scss" としてapplication.css名前を付けます。これはあなたの問題を解決します。

関連する問題