Iván Vega Rivera
2006-Jan-22 02:18 UTC
[Rails] Using register_template_handler to serve CSS files (Making ActionView handle .css as .rhtml)
Hi, I wanted to be able to use some Rails code inside CSS files, so I set up a controller (StylesController) to serve CSS files that reside inside the controller''s view folder when the browser requests /stylesheets/:action So in the controller I just define empty actions with the names I want my style sheets in (ie: def cooleffects end - that would respond to /stylesheets/cooleffects). And in views/styles I have cooleffects.css Then, I tried the following (both inside the controller, and in a plugin''s init.rb): ActionView::Base.register_template_handler ''css'', ActionView::Base Which doesn''t seem to have any effect, because Rails throws an error on the CSS file (no matter if I comment the line above): |No rhtml, rxml, or delegate template found for |<contents of the CSS file> So, how can I make ActionView handle CSS files as if they were RHTML files? Thanks! Ivan V.
Alain Ravet
2006-Jan-22 12:44 UTC
[Rails] Re: Using register_template_handler to serve CSS files (Making ActionView handle .css as .rhtml)
Iv?n > I wanted to be able to use some Rails code inside CSS files, Do you know RCSS? http://rcss.rubyforge.org/ It lets you use Erb inside css stylesheets. Note: I''ve experienced some problems when using RCSS on a shared server (Dreamhost). I wonder if it''s related to RCSS resource need:it has to translate the RCSS file into a CSS one. What happened is that the page would sometimes render without any styling, as when you remove all the stylesheed. Refreshing the page would have display correctly. Alain
Iván Vega Rivera
2006-Jan-22 15:44 UTC
[Rails] Re: Using register_template_handler to serve CSS files (Making ActionView handle .css as .rhtml)
Thanks Alain, it looks very interesting, specially the server-side constants, which are something that I was looking to implement using plain old erb code. However, since you mention some problems with it, I''ll just keep an eye on it for future usage. Right now, I went with this: tpl = '''' File.open("#{RAILS_ROOT}/app/views/styles/#{params[''cssfile'']}") do |css| while line = css.gets tpl += line end end render_template tpl Regards, Ivan V. Alain Ravet escribi?:> Iv?n > > > I wanted to be able to use some Rails code inside CSS files, > > Do you know RCSS? > http://rcss.rubyforge.org/ > It lets you use Erb inside css stylesheets. > > Note: I''ve experienced some problems when using RCSS on a shared > server (Dreamhost). I wonder if it''s related to RCSS resource need:it > has to translate the RCSS file into a CSS one. What happened is that > the page would sometimes render without any styling, as when you > remove all the stylesheed. Refreshing the page would have display > correctly. > > > Alain > > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >