【发布时间】:2013-08-30 15:09:16
【问题描述】:
这是场景:
我的大多数页面都使用来自不同页面的 CSS,这些 CSS 按照默认的 Rails 编译成一个大的 CSS 文件,这没有问题。
但是我在控制器中有几个页面是actions,它们需要使用不同的 CSS 页面,而不是其他页面。这些只是控制器中的大约 3 个操作,否则会使用主要的、默认的、已编译的 CSS。
为了实现这一点,我为需要单独页面的操作调用了特定布局:
format.html { render :layout => 'doghouse_template' }
这个doghouse_template 有这个电话:
= stylesheet_link_tag "doghouse_page"
这在开发中运行良好,如果需要,页面会在运行中编译,但在生产中,我收到以下错误:
ActionView::Template::Error (doghouse_page.css isn't precompiled)
这是因为doghouse_page.css不是单独编译的,是编译到主application.css文件中的,所以public/assets文件夹中当然不存在。
我还应该指出,doghouse.css 并不是真正的 CSS 页面,而是 SCSS 所以我不能在不编译某种类型的情况下将其复制到 public/assets。
我的问题是,这里的解决方案是什么?
我不能为这些使用 application.css 文件,我们称它们为 doghouse 页面,因为它会弄乱样式,反之亦然。
我什至尝试将文件放入 application.rb:
config.assets.precompile += %w( doghouse_page.css.scss )
但并没有什么不同。另一方面,如果我输入:
config.assets.precompile += %w( *.css )
由于 bootstrap/_accordion.scss 文件,我在预编译时遇到错误,所以我不能这样做。
我在这里看到了非常相似的问题,但它们往往适用于对整个控制器使用不同的 CSS,并且没有指定如何不将所有页面编译为一个。
请注意,我确实不想要分离所有 CSS 页面(表面上这是一种解决方案),只是这个单独的页面。
谢谢。
【问题讨论】:
标签: css ruby-on-rails-3.2 sass stylesheet