我在部署自定义项目时遇到问题_variables.scss
作为编译资产添加到我的生产服务器。
在我的开发环境中一切都很好,在生产中我的变量被覆盖。
我正在使用 Rails 4.2.1 和 Spree 3.0 稳定分支。
我有以下结构:
文件创建于vendor/assets/stylesheets/frontend
- _variables.scss(我的自定义应用程序变量)
- all.css(由 Spree 生成)
- frontend_bootstrap.css.scss(覆盖 Spree)
- navbar.scss(我的定制)
The _variables.scss
包含以下内容:
// Place all Sass variables here.
// Colors
$brand-primary: green;
$gray: #aaa;
// Navbar
$navbar-default-bg: #fff;
$navbar-height: 100px;
$navbar-border-radius: 0;
$navbar-default-border: none;
$navbar-default-toggle-hover-bg: $navbar-default-bg;
$navbar-default-toggle-icon-bar-bg: lighten($gray, 60%);
$navbar-default-toggle-border-color: $navbar-default-bg;
$navbar-default-link-active-bg: $brand-primary;
The frontend_boostrap.css.scss
包含以下内容:
// Spree Bootstrap Override
// Core
@import "variables";
@import "bootstrap-sprockets";
@import "bootstrap";
// Custom Overrides
@import "navbar";
The navbar.scss
包含以下内容:
// Navbar Customization
.navbar-myapp {
margin-bottom: 40px;
border-top: none;
border-bottom: 1px solid $navbar-default-toggle-icon-bar-bg;
.navbar-brand {
padding: 15px;
}
}
Rails 标准app/assets/stylesheets/application.css
清单没有被使用/我没有在那里声明任何具体内容。
生成的 HTML 头代码显示了 all.css 和前端。
<link rel="stylesheet" media="screen" href="/assets/spree/frontend/all.self-33fc4a513acb9a5f3fd4ba26b89c94184e5d028c4bd40eee6736d3ccfea5c140.css?body=1">
<link rel="stylesheet" media="screen" href="/assets/spree/frontend/frontend_bootstrap.self-88eb7ced3e4d78d298a33264c3cfc65af6cef8ac32ae56a7dd7a3e321ba97378.css?body=1">
一切都在开发中,但是当我将其部署到我的测试服务器时,一些变量被默认覆盖,其中包括导航栏配置和颜色。
我不确定这是否是因为资产编译顺序;或者如果是这样的话bootstrap-sass
是进口的。
关于如何使用的任何建议_variables.scss
而不被覆盖?我不想有任何重复,这就是为什么我想更改变量 sass 文件中的导航栏和颜色。