Reputation: 67802
How do I use CSS with RoR? When I link externally, I'm never able to see the files. I cp'd the .css file to every folder I could think of...views, controller, template, and nothing seems to work.
What do I need to do to enable external CSS files with a rails application? I'm new to rails, so forgive me if this is basic.
Upvotes: 69
Views: 127597
Reputation: 31
With Rails 6.0.0, create your "stylesheet.css" stylesheet at app/assets/stylesheets.
Upvotes: 3
Reputation: 16619
If you are using rails > 3 version, then there is a concept called asset pipeline
. You could add your CSS to
app/assets/stylesheets
then it will automatically be picked up by the app. (this is useful as rails will automatically compress the CSS files)
read more here about the asset pipeline
Upvotes: 30
Reputation: 1229
I did the following...
app/assets/stylesheets
folder.<%= stylesheet_link_tag "filename" %>
in your default layouts file (most likely application.html.erb
)I recommend this over using your public folder. You can also reference the stylesheet inline, such as in your index page.
Upvotes: 14
Reputation: 161
Use the rails style sheet tag to link your main.css like this
<%= stylesheet_link_tag "main" %>
Go to
config/initializers/assets.rb
Once inside the assets.rb
add the following code snippet just below the Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.precompile += %w( main.css )
Restart your server.
Upvotes: 16
Reputation: 71
The original post might have been true back in 2009, but now it is actually incorrect now, and no linking is even required for the stylesheet as I see mentioned in some of the other responses. Rails will now do this for you by default.
You can test this with a path in your browser like testserverpath:3000/assets/filename_to_test.css?body=1
Upvotes: 4
Reputation: 3639
To add to the above, the most obvious place to add stylesheet_link_tag is in your global application layout - application.html.erb.
Upvotes: 2
Reputation: 5231
Put the CSS files in public/stylesheets and then use:
<%= stylesheet_link_tag "filename" %>
to link to the stylesheet in your layouts or erb files in your views.
Similarly you put images in public/images and javascript files in public/javascripts.
Upvotes: 66
Reputation: 89803
Have you tried putting it in your public folder? Whenever I have images or the like that I need to reference externally, I put it all there.
Upvotes: 0