【发布时间】:2013-09-13 19:17:16
【问题描述】:
我正在尝试构建一个 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
mixin“my-rockin-engines-mixin”在 MyRockinEngine 资产中的某处定义。
问题
我有一个来自主机应用程序的@imports 链,通过引擎。 (由于described here 的原因,我正在使用@imports。)我在引擎资产中创建的任何样式定义都可用于主机应用程序。但是,我创建的 SASS mixin 都不能在任何地方使用,除非在定义 mixin 的同一个文件中。
基本上,我想知道我的实现是否不起作用,因为(1)我以一种混乱的方式使用引擎; (2) 不能在 Rails 引擎和它们的宿主应用程序之间共享 mixin; (3) 我对 sprockets/rails/compass/sass (@import/require) 指令的某些方面有误解。
任何帮助将不胜感激!如果有人需要,我可以随时提供更多详细信息。
【问题讨论】:
标签: ruby-on-rails sass compass-sass sprockets rails-engines