为什么Sass在Express应用程序中看不到我的.scss文件?

时间:2016-08-14 19:59:34

标签: node.js express sass handlebars.js

我正在使用Sass构建Express应用程序,自从我上次编译.scss和.css文件以来,我没有对我的项目进行任何更改。

命令:

sass sass/style.scss style.css

上次我的项目工作时工作,但今天我收到了这个错误:

Errno::ENOENT: No such file or directory @ rb_sysopen - sass/style.scss
  Use --trace for backtrace.

此外,自上次工作以来,我没有做出任何新的更改,而且我甚至已经恢复到以前的git提交。

在我的app.js中,我node-sass-middleware配置如下:

var sassMiddleware = require('node-sass-middleware');

和此:

app.use(sassMiddleware({
  src: path.join(__dirname, 'public/stylesheets/sass'),
  dest: path.join(__dirname, 'public/stylesheets'),
  debug: true,
  indentedSyntax: true,
  outputStyle: 'compressed',
  prefix: '/stylesheets'
}));
app.use(express.static(path.join(__dirname, 'public')));

public中的My-Website/public文件结构如下所示:

├── public
    └── stylesheets
        ├── sass
            └── style.scss
        ├── style.css
        └── style.css.map

另外,在我的layout.hbs文件夹中的views文件中(我使用Express的把手模板语言),我脑子里有这个链接:

    <link rel='stylesheet' href='/stylesheets/style.css' />

发生了什么事?

1 个答案:

答案 0 :(得分:0)

这里有多个组件,命令sass和node-sass-middleware,它使用sass命令编译工作表。在帖子的开头你引用sass命令不起作用,然后你转换到你的快速脚本,我认为这意味着它也不起作用。检查当前的工作目录,并在运行第一个命令时确保它是public / stylesheets /