Asset - Pipeline

Hello guys,

I tried to get an image-background working within my page, but I was wrong...

I´m using rails 3.2.3, ruby 1.9.3 p125.

thats a part of my css file (app/assets/stylesheets/custom.css.scss):

body {         padding-top: 70px;         background: url(<%= asset_path 'background.png' %>); }

and if i try to access the page, rails server sais

ActionView::Template::Error (Invalid CSS after " background: url(": expected ")", was "<%= asset_path ..."   (in /home/basti/website/Azubiware_2.0/app/assets/stylesheets/custom.css.scss)):     2: <html>     3: <head>     4: <title>Azubiware 2.0 | <%= @title %></title>     5: <%= stylesheet_link_tag "application", media: "all" %>     6: <%= javascript_include_tag "application" %>     7: <%= csrf_meta_tags %>     8: <!--[if lt IE 9]>   app/assets/stylesheets/custom.css.scss:9   app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb___3677715865169271541_23617180'

Any idea how to get this background foo working?

Very thanksfull for every hint!

Basti

Here an example line from one of our scss files:

        background: image-url("email_icon.png") no-repeat 0px 4px;

Try that?

that worked for me :slight_smile: yeah.. you made my evening! thanks

To run the first code you tried you need to add the .erb extension. Otherwise, it’s like running ruby code in a css/html file or whatever. It doesn’t work :slight_smile:

The assets pipeline works like this:

example.css.scss => Interprets scss first and serves the css file.

example.html.erb => interprets erb first and serves the html file.

example.css.scss.erb => interprets erb first, then scss and serves the css file to the client.

… and so on.

The “image-url()” code that kbedell suggested above works because it’s a scss helper method for rails.

Hope that clears things up a bit :slight_smile:

Cheers!