2011-09-18 12 views
18

Estoy siguiendo el manual Agile Web Development with Rails 4th edition y tengo un problema con sprocket css in rails 3.1.Piñones :: CircularDependencyError in Store # índice

El css código es:

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

Si modifico el código CSS de aplicación/activos/hojas de estilo/aplication.css.scss que coger el siguiente error:

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' 

No entiendo por qué si modifico un valor de margen o un valor de relleno en aplication.css.scss, por ejemplo, obtengo este error.

Muchas gracias.

+0

¿Desaparece al reiniciar el servidor? –

+0

No. He reiniciado el servidor pero el problema no está solucionado. Si desactivo el CSS, la página funciona pero sin CSS. He eliminado de aplication.html.erb la aplicación <% = stylesheet_link_tag "%>. Entonces la página funciona bien pero sin CSS. No sé que puedo hacer para solucionar este problema :(Muchas gracias. – hyperrjas

+0

Por favor, ponga un ejemplo reproducible. –

Respuesta

52

Debe eliminar la aplicación/assets/stylesheets/application.css.

+0

Esto solucionó mi problema. Gracias. –

+1

esto se llama solución rápida;) –

+0

Sí, 'require_tree .' significa" requiere todo en este directorio y todos los elementos secundarios "y está en la' aplicación.css' generada. Es bastante extraño que, por defecto, Rails diga "incluir todo el CSS en todas las páginas", ¿eh? – AlexChaffee

2

Estaba teniendo este mismo problema después de instalar SCSS. Solucioné el problema eliminando los comentarios de desactivación que los rieles colocan en el encabezado. Así que esto:

/* 
* 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; 
} 

Se convirtió en esto:

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

Esos "comentarios predeterminados" se llaman "directivas" y sin ellos, tendrá que incluir y precompilar explícitamente los archivos CSS de sus activos. Lo cual podría estar bien para usted, pero no es el estándar Rails en estos días. – AlexChaffee

+0

Correcto. Esto fue hace un par de años que estaba teniendo este problema. Ya no estoy y todo está funcionando como esperaba. Estoy bastante seguro de que mi problema era algo que estaba haciendo mal en ese momento. – Ken

14

que tenía un problema similar:
Asset pipeline not precompiling sass

La dependencia circular ocurre cuando el archivo de manifiesto requiere los archivos del árbol. Sass lo hace de todos modos, así que no es necesario.

Quitar:

*= require_tree . 
+3

¿Por qué diablos no está documentado como tal? Viniendo de .NET esto es muy confuso. Tengo que buscar prácticamente todo en Google. :/ –

+0

El inventario de activos es bastante nuevo y confuso para mucha gente. Será más fácil :) – Rimian

+0

Greate yar, has ahorrado mi montón de tiempo. –

0

sólo el nombre de la application.css como "application.scss". Esto resolverá su problema.

Cuestiones relacionadas