2009-04-30 104 views
47

¿Cómo uso CSS con RoR? Cuando enlace externamente, nunca puedo ver los archivos. Completé el archivo .css con todas las carpetas en las que pude pensar ... vistas, controlador, plantilla y nada parece funcionar.¿Cómo uso CSS con una aplicación de ruby ​​on rails?

¿Qué debo hacer para habilitar los archivos CSS externos con una aplicación de rieles? Soy nuevo en los rieles, así que perdónenme si esto es básico.

Respuesta

49

poner los archivos CSS en público/hojas de estilo y luego usar:

<%= stylesheet_link_tag "filename" %> 

para enlazar a la hoja de estilo en sus diseños o archivos erb en sus puntos de vista.

De manera similar, pone imágenes en público/imágenes y archivos javascript en public/javascripts.

+0

no hay "public/stylesheets" donde puedo agregar mi archivo? – riship89

+1

Luego puede crearlo agregando la carpeta pública en el mismo directorio que la carpeta de su aplicación. A continuación, agregue una carpeta de hojas de estilo dentro de la carpeta pública. – PJT

0

¿Has intentado ponerlo en tu carpeta pública? Cada vez que tengo imágenes o cosas similares que necesito hacer referencia externamente, pongo todo allí.

2

Para agregar a lo anterior, el lugar más obvio para agregar stylesheet_link_tag está en el diseño de la aplicación global - application.html.erb.

11

hice lo siguiente ...

  1. lugar su archivo CSS en la carpeta app/assets/stylesheets.
  2. añadir el enlace de estilos <%= stylesheet_link_tag "filename" %> en su archivo de diseños predeterminados (lo más probable application.html.erb)

Recomiendo este sobre el uso de la carpeta pública. También puede hacer referencia a la hoja de estilo en línea, como en su página de índice.

+0

Esto no funciona para mí, dando AssetsFilter error – Volatil3

14

Si está utilizando rieles> versión 3, existe un concepto llamado asset pipeline. Usted puede agregar su css a

app/asset/stylesheets 

y luego la aplicación la seleccionará automáticamente. (Esto es útil como carriles se comprimir automáticamente los archivos CSS)

read more here sobre la tubería de activos

+0

Eso es 'app/assets/stylesheets' (debería ser 's' en 'assets') – labyrinth

3

El post original podría haber sido cierto en el 2009, pero ahora es realmente incorrecto ahora, y sin vinculación es aún requerido para la hoja de estilo como veo mencionado en algunas de las otras respuestas. Rails ahora hará esto por usted de manera predeterminada.

  • Place cualquier nueva hoja css (u otro) en app/activos/hojas de estilo
  • probar su servidor con los carriles-root/scripts/servidor de rieles y verá el enlace se añade por sí mismo rieles.

Esto se comprueba con un camino en su navegador como testserverpath:? 3000/activos/filename_to_test.css cuerpo = 1

+0

Disculpe necropost, pero usted es tan culpable como yo. Sin embargo, esto no es el caso en absoluto. Si desea utilizar la canalización de activos, y ha vinculado correctamente su archivo CSS en su application.html.haml (o .erb), su servidor emitirá un error y le pedirá que lo agregue a la precompilación (config/initializers/assets.rb) así como 'Rails.application.config.assets.precompile + =% w (custom.css)' – DotSlashCoding

8

utilizar la etiqueta de hoja de estilo carriles para enlazar su principal.css como esto

<%= stylesheet_link_tag "main" %> 

Ir a

config/initializers/assets.rb 

Una vez dentro del assets.rb añadir el siguiente fragmento de código justo debajo de la Rails.application.config.assets.version = '1.0'

Rails.application.config.assets.version = '1.0' 
Rails.application.config.assets.precompile += %w(main.css) 

Reinicie el servidor.

+2

Esta es la respuesta correcta (más específica) según la documentación de Rails. ¡Debe agregarlo a assets.rb para precompilar! – DotSlashCoding