【问题标题】:Why can't Sass see my .scss file in an Express app?为什么 Sass 在 Express 应用程序中看不到我的 .scss 文件?
【发布时间】:2016-08-15 04:59:19
【问题描述】:

我正在使用 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')));

我在My-Website/public 中的public 文件结构如下:

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

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

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

发生了什么事?

【问题讨论】:

  • 看来你打错了:stylesheets/sass/style.scss,而不是sass/style.scss
  • 这会导致同样的错误。根据对这个问题的回答:stackoverflow.com/questions/30654312/…,我的印象是 Sass 会在 My-Website/public/stylesheets(即中间件配置中的 dest)处寻找编译后的 style.scss
  • 这里有多个组件,命令sassnode-sass-middleware,它使用sass 命令编译工作表。在帖子的开头,您引用了sass 命令不起作用,然后您转换到您的快速脚本,我认为这意味着它也不起作用。检查您当前的工作目录,并确保在运行第一个命令时它是public/stylesheets/
  • 成功了,谢谢!澄清一下,唯一的问题是 sass 命令不起作用。中间件被包括在内,以防出现问题。但无论哪种方式,问题都解决了。
  • 我会将我的评论粘贴到答案中,以便您将其标记为已回答(这是标准做法,IIRC)

标签: node.js express sass handlebars.js


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2013-05-28
    • 2014-02-06
    • 1970-01-01
    • 2023-03-16
    • 2018-01-22
    相关资源
    最近更新 更多