5

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

例如,我正在使用

<%= stylesheet_link_tag "main" %>

在公共/样式表中链接到我的 main.css 文件,但是当我将文件扩展名从 main.css 更改为 main.css.erb 时,它不再呈现 css ..

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

4

3 回答 3

24

到回答这个问题时,确实没有办法.css.erb正确使用 rails 中的文件。

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

于 2012-04-09T15:12:45.390 回答
4

您还可以生成“样式表”控制器

./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 控制器)

于 2009-08-27T19:57:23.050 回答
3

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

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

于 2009-08-26T23:59:21.867 回答