我正在尝试构建一个Rails引擎,它为其主机应用程序提供资产服务。具体来说,我希望能够执行以下
# Host App's Gemfile
gem 'my-rockin-engine'还有..。
# Host App's application.css
/*
*= require styles
*/
@import 'my-rockin-engine/mixins'还有..。
# Host App's style.sass
.host-app-defined-class-name
+my-rockin-engines-mixin其中混合“我的摇滚乐引擎-混合器”是在MyRockinEngine的资产中定义的。
问题
我通过引擎从主机应用程序中获得了一系列的“导入”。(由于在此描述的原因,我使用@imports。)我在引擎资产中创建的任何样式定义都可供主机应用程序使用。但是,我创建的SASS mixin中没有任何地方可以使用,只能在定义混合文件的同一个文件中使用。
本质上,我想知道我的实现是否不起作用,因为(1)我以一种混乱的方式使用引擎;(2) Rails引擎和它们的主机应用程序之间不可能共享混合;(3)链轮/rails/compass/sass (@import/require)指令的某些方面是我误解的。
任何帮助都将不胜感激!如果有人需要的话,我可以提供更多的细节。
发布于 2013-09-10 23:13:45
对于后人来说,我遇到的问题似乎是在(3) --我的问题中描述的。
不要尝试并@import名为foobar.css.sass的sass文件。罗盘将把这些文件视为css,因为它们必须通过@import 'foobar.css'导入。@import foobar将失败,因为.css是文件名的一部分。
因此,通过确保任何我@import使用.sass扩展名的文件,并且在文件名的最后部分没有.css,就可以解决我的问题。
https://stackoverflow.com/questions/18712829
复制相似问题