嘿,我一般是新来的Rails和Ruby。 我想知道是否有可能使用嵌入式红宝石CSS文件(css.erb),类似于使用html.erb文件的意见。
例如,我使用
<%= stylesheet_link_tag "main" %>
链接到我的main.css文件中的公共/样式表,但是当我改变从main.css的文件扩展名main.css.erb,它不再呈现CSS ..
这甚至可能,还是有更好的办法?
嘿,我一般是新来的Rails和Ruby。 我想知道是否有可能使用嵌入式红宝石CSS文件(css.erb),类似于使用html.erb文件的意见。
例如,我使用
<%= stylesheet_link_tag "main" %>
链接到我的main.css文件中的公共/样式表,但是当我改变从main.css的文件扩展名main.css.erb,它不再呈现CSS ..
这甚至可能,还是有更好的办法?
我不这么认为。 请告诉我你的意图 - 使用变量,并让它们在运行时进行评估,或“编译”时(指像部署时间?)。 此外,这将是该局结合? 将其绑定到控制器,如美景和助手是,使该局实例将有机会获得在控制器设置的实例变量? 我只是提出这个问题的更多的是理论上的锻炼。
如果你想在你的CSS使用变量比您可以使用Haml的的上海社会科学院。 你并没有进入到控制器的范围,但你得到的基本变量和循环。 加上其他很酷的东西,如混入。
到时候这个问题得到的回答确实有没有办法使用.css.erb
正确的轨道文件。
但是,新的轨道3.1资产管道使您可以使用你的CSS文件中的资产帮手。 CSS的解析器不绑定控制器/行动范围,但ruby解析器现在能够解决像图像路径引用的一些问题
.class { background-image: url(<%= asset_path 'image.png' %>) }
或直接嵌入图像到你的CSS
#logo { background: url(<%= asset_data_uri 'logo.png' %>) }
来源: http://guides.rubyonrails.org/asset_pipeline.html
您还可以生成一个“样式”控制器
./script/generate controller stylesheets main admin maintenance
你得到的东西是这样的:
exists app/controllers/
exists app/helpers/
create app/views/stylesheets
exists test/functional/
exists test/unit/helpers/
create app/controllers/stylesheets_controller.rb
create test/functional/stylesheets_controller_test.rb
create app/helpers/stylesheets_helper.rb
create test/unit/helpers/stylesheets_helper_test.rb
create app/views/stylesheets/main.html.erb
create app/views/stylesheets/admin.html.erb
create app/views/stylesheets/maintenance.html.erb
你可以在以后使用的应用程序/视图/样式表/文件,动态呈现的css文件。
同样的方法适用于JavaScript文件(JavaScript的控制器)