我正处于设置Node.js / Express应用程序的早期阶段(我相当绿色的一个区域),我正在尝试集成SASS来处理样式。我正在使用node-sass-middleware软件包,并且能够将SASS呈现给CSS并在重新启动服务器后只显示一次。所有后续请求都没有提供正确的CSS。 .css文件存在于后续请求中,但它是空的。无论如何,这是我在server.js文件中的内容:
const express = require('express');
const app = express();
const sassMiddleware = require('node-sass-middleware');
const path = require('path')
app.set('views', __dirname + '/views');
app.use(sassMiddleware({
src: path.join(__dirname, "/sass"),
dest: path.join(__dirname, "/public/stylesheets"),
debug: true,
outputStyle: 'compressed'
}),
express.static(path.join(__dirname, 'public'))
);
我正在使用的基本静态索引页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SkyCast</title>
<link rel="stylesheet" type="text/css" href="/style.css">
</head>
<body>
<h1>Hello world!</h1>
</body>
</html>
当我查看服务器上编译好的style.css文件时,正确的css就坐在那里,但它没有被客户端接收。这是使用Nodemon在本地运行的。非常感谢任何帮助。
答案 0 :(得分:1)
在打了我的头后,我找到了答案。似乎对express.static的调用只有在包含在对app.use的原始调用中才能正常工作。设置如下:
app.use(sassMiddleware({
src: path.join(__dirname, 'scss'),
dest: path.join(__dirname, 'public'),
debug: true,
outputStyle: 'compressed'
}), express.static(path.join(__dirname, 'public')));
做了这个伎俩。