试图找出如何在Rails 4应用程序中导入一些SCSS文件。文件是:
@import "shared/mixins",
"shared/reset",
"shared/about-light";
我不确定如何正确地做到这一点,我也不知道如何设置路径。
我将这些文件放在名为"shared"
的文件夹中,并将此文件夹放在/lib/assets/css/
内。这是正确的方法吗?
还尝试将文件放在/vendor/assets/stylesheets/
如何正确导入这些文件?
错误:
File to import not found or unreadable: mixins.
Load paths:
答案 0 :(得分:5)
我们通常将mixins放在名为_mixins.scss
的部分文件中,直接放在app/assets/stylesheets/
目录中,如果您想要更多组织,可能在shared
之类的子目录下。在你的application.css
中,你可以做(就像你做的那样)
@import 'shared/mixins';
@import 'shared/colors';
或其他什么。如果您真的希望他们坐在其他地方,您应该查看SASS的load_paths
配置设置。您可以告诉SASS在导入文件时要查看的位置,默认情况下可能不包括lib/assets
和vendor/assets
。
要添加此配置,请在environment.rb
或其他配置文件中执行类似
config.sass.load_paths << File.expand_path('../../vendor/assets/stylesheets/')
除了默认搜索的所有其他目录外,还会使vendor/assets/stylesheets
中的SASS看起来。
答案 1 :(得分:2)
我认为你混淆了部分和混音。
来自Sass文档:
<强>密新强>
&#34; mixin允许您创建要在整个站点中重用的CSS声明组。您甚至可以传入值以使您的mixin更灵活。你可以把mixin想象成css的一个函数(太棒了吧!)。#34;有关mixins here的更多信息。
<强>部分强>
&#34;您可以创建包含很少CSS片段的部分Sass文件,您可以将这些片段包含在其他Sass文件中。这是模块化CSS并帮助维护事物更容易的好方法。 partial只是一个以前导下划线命名的Sass文件。&#34;有关partials here的更多信息。
因此,您尝试导入的内容确实是 partials ,并且应以下划线开头。
您的目录结构应如下所示:
assets
stylesheets
application.css.scss
shared
_mixins.scss
_reset.scss
_about-light.scss
您的application.css.scss文件应如下所示:
@import "mixins";
@import "rest";
@import "about-light";
答案 2 :(得分:0)
好的,所以我能够按照以下方式解决这个问题:
在application.rb
中添加以下内容:
config.sass.load_paths << File.expand_path('../../vendor/assets/stylesheets/')
在CSS文件中导入为:
@import "mixins",
"reset",
"about-light";
将文件放入:
/vendor/assets/stylesheets/
重启服务器。