我已经开始了一个新项目(Rails 5.0.0.1
&& ruby 2.3.1p112
),似乎无法让资产进行预编译。我目前的结构是这样的。
应用程序/资产/配置/ manifest.js
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css
应用程序/资产/样式表/ application.scss
*
*= require_tree .
*= require font-awesome
*= require style
*= require_self
*/
应用程序/资产/样式表/ style.scss
@import "bootstrap-sprockets";
@import "bootstrap";
// shared styling
@import 'shared/variables';
@import 'shared/content';
...
...
应用程序/视图/布局/ application.html.haml
...
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
...
在我的app / assets / stylesheets / helpers / _varibles.scss文件中我设置了一些varibles
$font-family-standard: 'Arial', sans-serif;
$font-family-default: 'Open Sans', 'Arial', sans-serif;
$color-primary: #ff7e5b;
$color-gray: #898989;
$color-dark: #292c33;
$color-darker: #3f4248;
但是当我运行rails server /尝试运行bundle exec rake assets:precompile
时,我得到了这个:
be rake assets:precompile
rake aborted!
Sass::SyntaxError: Undefined variable: "$color-dark".
/Users/Nexus/Personal/Projects/Rubyfuza/rubyfuza/app/assets/stylesheets/helpers/_content.scss:3
/Users/Nexus/.rbenv/versions/2.3.1/bin/bundle:23:in `load'
/Users/Nexus/.rbenv/versions/2.3.1/bin/bundle:23:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
我不知道这里发生了什么。任何帮助都感激不尽。
答案 0 :(得分:0)
您正在使用$color-dark
中未定义的app/assets/stylesheets/helpers/_content.scss:3
变量
您需要在_content.scss
@import 'shared/variables'
答案 1 :(得分:0)
你必须删除
= require_tree .
这
/*
*
*= require_tree .
*= require font-awesome
*= require style
*= require_self
*/
存在于app / assets / stylesheets / application.scss中,因为资产管道继续编译样式表目录中存在的每个文件,因此需要使用@import
指令来包含变量partial,这是默认行为上海社会科学院。但如果你这样做,你可以防止这种情况。