我在我的Rails应用中安装了foundation-rails
并运行rails g foundation:install
。正确安装了项目特定的文件(主要是foundation_and_overrides.scss
)。宝石就在那里,安装没有问题,依赖(SASS,指南针)也在那里。但我得到了:
Error compiling CSS asset
SASS::SyntaxError: File to import not found or unreadable: global.
来自:
/Users/local/.rvm/gems/ruby-2.0.0-p353/gems/foundation-rails-5.0.2.0/vendor/assets/stylesheets/foundation/components/_accordion.scss:1
经过调查,我发现_accordion.scss
@import
foundation.scss
位于主stylesheets/
文件中,位于@import 'foundation/components/accordion'
的两个目录中:
_global.scss
同时,“缺失”文件@import
位于同一目录中。如果我然后将_accordion.scss
中的@import 'global'
代码从@import 'foundation/components/accordion'
更改为_global.scss
,则会清除并继续执行下一个错误(此处有很多子导入)
很明显发生的事情是 SASS相对于顶部样式表foundation.scss
正在寻找_accordion.scss
,而不是相对于要求它的导入样式表({{ 1}})。
我无法想象这是Foundation / Foundation-Rails中的一个错误 - 这个gem对任何人都不起作用 - 而且我不想自己修改gem的内容。
所以我的问题是:我是否必须更改一些SASS设置以允许@import
相对于导入的样式表?我不想修改这个gem以使其工作(我想允许将来更新gem)。
明确gem vendor/assets/stylesheets
目录中的目录结构:
foundation.scss
foundation/components/_accordion.scss
foundation/components/_global.scss
您实际上可以在github
上看到gem的代码和结构以为我已经解决了这个问题,但我没有:从@import
改为=require
摆脱了错误,并包含了Foundation的CSS。但是require
不会导入Foundation提供的SCSS功能 - 变量,mixins。没有办法以这种方式更改全局值,或者从主样式表或其他@import
ed样式表中检索它们或mixins。
答案 0 :(得分:1)
看起来像基金会thinks这是最好的解决方案:
手动将Foundation的样式表子目录(每个子目录)添加到:load_paths
主要块中的SASS application.rb
:
config.sass.load_paths += [
"#{Gem.loaded_specs['foundation-rails'].full_gem_path}/vendor/assets/stylesheets/foundation/components",
"#{Gem.loaded_specs['foundation-rails'].full_gem_path}/vendor/assets/stylesheets/foundation/"
]