这是场景:
我的大多数页面都使用来自不同页面的 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 文件,我们称它们为狗屋页面,因为它会弄乱样式,反之亦然。
我什至尝试将文件放入 application.rb:
config.assets.precompile += %w( doghouse_page.css.scss )
但并没有什么不同。另一方面,如果我输入:
config.assets.precompile += %w( *.css )
由于 bootstrap/_accordion.scss 文件,我在预编译时遇到错误,所以我不能这样做。
我在这里看到了非常相似的问题,但它们往往适用于对整个控制器使用不同的 CSS,并且没有指定如何不将所有页面编译为一个。
请注意,我不想分离所有的 CSS 页面(这表面上是一种解决方案),只是这个单独的页面。
谢谢。