Rails Asset Pipeline with sass @imports

时间:2015-07-02 07:59:04

标签: ruby-on-rails sass asset-pipeline

我正在使用Rails 4.2。

在我的rails项目目录中,我有一个前端目录:

/railsproject/frontend
/railsproject/frontend/styles
/railsproject/frontend/styles/main.scss
/railsproject/frontend/styles/variables.scss
/railsproject/frontend/node_modules/normalize.css/
/railsproject/frontend/node_modules/normalize.css/normalize.css

我知道有一个带有句号的目录是不寻常的,但我已经尝试更改目录名称和相应的@import语句并且它没有区别

我已将config.assets.paths << Rails.root.join("frontend","styles")添加到application.rb

/railsproject/app/assets/stylesheets/application.css

@import "main.scss";

到目前为止一切都很好,它加载/处理main.scss文件。

/railsproject/frontend/styles/main.scss

@import 'variables'; // this works fine
@import '../node_modules/normalize.css/normalize.css'; // this does NOT work

第二次导入不起作用...我在Chrome控制台中收到GET错误,导轨服务器说:

Started GET "/node_modules/normalize.css/normalize.css" for ::1 at 2015-07-02 15:55:38 +0800

ActionController::RoutingError (No route matches [GET] "/node_modules/normalize.css/normalize.css"):

我做错了什么?

1 个答案:

答案 0 :(得分:-1)

SASS不允许你导入CSS文件,它希望SCSS文件编译成CSS。 将文件扩展名切换到SCSS或升级到SASS 3.2.10,这样可以导入CSS文件。

参考:Import regular CSS file in SCSS file?