嘿,总的来说,我是 Rails 和 Ruby 的新手。我想知道是否可以使用嵌入式 ruby css 文件(css.erb),类似于使用 html.erb 文件进行视图。
例如,我正在使用
<%= stylesheet_link_tag "main" %>
在公共/样式表中链接到我的 main.css 文件,但是当我将文件扩展名从 main.css 更改为 main.css.erb 时,它不再呈现 css ..
这甚至可能,还是有更好的方法?
嘿,总的来说,我是 Rails 和 Ruby 的新手。我想知道是否可以使用嵌入式 ruby css 文件(css.erb),类似于使用 html.erb 文件进行视图。
例如,我正在使用
<%= stylesheet_link_tag "main" %>
在公共/样式表中链接到我的 main.css 文件,但是当我将文件扩展名从 main.css 更改为 main.css.erb 时,它不再呈现 css ..
这甚至可能,还是有更好的方法?
到回答这个问题时,确实没有办法.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' %>) }
您还可以生成“样式表”控制器
./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 控制器)
我不这么认为。你的意图是什么 - 使用变量并在运行时或“编译”时评估它们(意思是部署时间?)。另外,ERB 绑定是什么?它会像视图和助手一样绑定到控制器,以便 ERB 实例可以访问控制器中设置的实例变量吗?我只是把这个问题作为一个理论练习。
如果您想在 CSS 中使用变量,则可以使用 Haml 的 SASS。您无法访问控制器的范围,但您确实获得了基本变量和循环。加上其他很酷的东西,比如 mixins。