可以在Rails中使用stylesheet.css.erb吗?

嘿,我是Rails和Ruby的新手。 我想知道是否可以使用嵌入式ruby css文件(css.erb),类似于使用html.erb文件进行查看。

例如,我正在使用

 

链接到public / stylesheets中的main.css文件,但是当我将文件扩展名从main.css更改为main.css.erb时,它不再呈现css ..

这甚至可能,还是有更好的方法?

我不这么认为。 您的意图是什么 – 使用变量并在运行时评估它们,或者“编译”时间(意味着像部署时间?)。 另外,ERB绑定是什么? 它是否会绑定到控制器,如视图和帮助程序,以便ERB实例可以访问控制器中设置的实例变量? 我只是把这个问题作为理论练习。

如果你想在你的CSS中使用变量,你可以使用Haml的SASS。 您无法访问控制器的范围,但您确实获得了基本变量和循环。 还有其他很酷的东西,比如mixins。

当这个问题得到解答时,确实无法正确使用.css.erb文件。

但是新的rails 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 

之后您可以将app / views / stylesheets /文件用作动态呈现的css文件。

相同的方法适用于javascript文件(javascripts控制器)