【发布时间】:2014-08-25 07:55:33
【问题描述】:
我有一个 Rails 3.2 应用程序。我正在尝试部分渲染处理过的 sass 代码。
我添加了一个初始化器来处理 scss 文件:
ActionView::Template.register_template_handler :scss,
Sass::Rails::ScssTemplate
我的 sass 文件名为 _style.scss,渲染调用如下所示:
<%= render partial: "./templates/default/style", formats: "css" %>
我收到以下错误:
undefined method `call' for Sass::Rails::ScssTemplate:Class
在我看来,Rails 似乎不知道如何处理 Sass 文件,但是,我的 application.css 文件中包含的任何 .scss 文件都已正确处理,因此,至少在这种情况下,我知道 sass 处理工作正常.我尝试了不同的扩展名和格式。在某些情况下,我可以获得要渲染的视图,但不处理 sass。
【问题讨论】:
-
你不应该做
stylesheet_include_tag吗? -
@GauravShah stylesheet_link_tag 会写一个链接,但是只有当文件在 assets 目录中并且我想从不同的位置加载它时,sass 才会被解析。 (我现在正在考虑在资产管道之外解析 sass。)
-
正如在对类似问题的回答中指出的那样,在 Rails 部分中渲染 sass 并不是一个好主意。更好的方法是生成一次 css 代码,而不是每次都解析 sass 代码,这很昂贵。 stackoverflow.com/questions/8908780/…我会留下这个问题,因为我仍然很好奇这是否可以做到,但我正在改变我的方法。
-
我对此感兴趣,因为我正在构建一个 AMP 页面,该页面要求样式不能从外部文件链接(很烦人)
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 sass