簡體   English   中英

Rails 5,Sass :: SyntaxError無法預編譯資產

[英]Rails 5, Sass::SyntaxError cannot precompile assets

我已經啟動了一個新項目( Rails 5.0.0.1 && ruby 2.3.1p112 ),似乎無法讓資產進行預編譯。 我當前的結構如下所示。

app / assets / config / 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';
...
...

app / views / layout / application.html.haml

...
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
...

在我的app / assets / stylesheets / helpers / _varibles.scss文件中,我設置了一些變量

$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服務器/嘗試運行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)

我不知道這是怎么回事。 任何幫助都感激不盡。

您正在app/assets/stylesheets/helpers/_content.scss:3中使用$color-dark變量(未定義)

您需要將其導入_content.scss

@import 'shared/variables'

您必須刪除

= require_tree .

/*
*
*= require_tree .
*= require font-awesome
*= require style
*= require_self
*/

之所以出現在app / assets / stylesheets / application.scss中,是因為資產管道繼續編譯樣式表目錄中存在的每個文件,導致需要使用@import指令來包含局部變量sass的默認行為。 但是,如果執行上述操作,則可以避免這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM