我用Rails编码已经快十年了,对于sass文件的Rails@import
实践,我有点困惑。
具体来说:我有以下application.scss
:
@import 'theme';
@import 'bootstrap';
@import 'colors';
@import 'sidebar';
在这些文件中,如果我想访问其他文件中的变量,我仍然需要直接导入相关的scss文件。例:我在sidebar.scss
中引用$blue-600
(来自bootstrap)。我假设,给定引导是在应用程序的边栏上面导入的。这样我就不用再导入了。但我这样做-否则我得到一个"变量未找到"的错误。(虽然它不会在第一次刷新时立即发生-我假设由于缓存的资产引用,它通常需要几分钟才能出现错误)。
这是有问题的,因为我覆盖(例如)colors
中的$primary
颜色,但是当我在侧边栏中导入bootstrap
时,bootstrap覆盖了我的覆盖-将$primary
设置回默认值。
所以:有什么想法我做错了吗?为了它的价值,我使用'bootstrap' gem和导入映射来引用bootstrap,它也在config/initializers/assets.rb中预编译过。据我所知,rails 7资源管道的其余部分基本上是默认的。
其他注意事项:这些都是在开发环境中,我还没有将项目发送到生产环境。
更新:恐怕我仍然不知道潜在的问题是什么,但不知怎的,rails资产管道以不同于application.scss. ...中指定的顺序导入文件移动到cssbundle -rails解决它