node-sass配置无法将样式表呈现到页面(快速)

时间:2014-02-08 04:53:38

标签: node.js express sass

我无法使用node-sass library在我的节点应用中将样式表渲染到页面。服务器返回200,我可以使用开发工具检查main.scss,但内容页面实际上没有被修改。

我已经确保express.static指令在 sass.middleware之后,并且在我的一条路线中添加了sass.render(现已删除)以尝试错误日志。它没有返回任何错误。此外,index.html包含<link rel="stylesheet" href="stylesheets/main.scss">。非常感谢任何帮助!

目录:

├── app.js
├── launch.sh
├── package.json
├── public
│   ├── index.html                                                                                                                                          
│   └── stylesheets                                                                    
│       └── main.scss                                                                     
└── spec                                                                                  
    ├── unit.js                                                                           
    └── unitExamples.js

app.js:

var express = require('express'),
    sass    = require('node-sass'),
    path    = require('path'),
    app     = express();

app.configure(function(){
  app.use(express.logger('dev'));
  app.use(express.urlencoded());
  app.use(express.json());
  app.use(
    sass.middleware({
      src: __dirname + '/public/stylesheets',
      dest: __dirname + '/public/',
      debug: true,
      outputStyle: 'compressed'
    })
  );
  app.use(express.static(path.join(__dirname, 'public')));
});

app.get('/', function(req,res){
  res.sendfile(path.join(__dirname, '/public/index.html'));
});

var port = process.env.PORT || 8080;
app.listen(port);
console.log("App listening on port " + port);

1 个答案:

答案 0 :(得分:1)

您应该引用目标 css文件,而不是其来源:

<link rel="stylesheet" href="/main.css">

此外,不应该从外部访问SCSS文件,因此应将它们移出public