我无法使用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);
答案 0 :(得分:1)
您应该引用目标 css
文件,而不是其来源:
<link rel="stylesheet" href="/main.css">
此外,不应该从外部访问SCSS文件,因此应将它们移出public
。