Javascript 带有节点sass中间件的Express app只提供一次正确的样式表
我正处于创建Node.js/Express应用程序的早期阶段(这是我比较熟悉的领域),我正在尝试集成SASS来处理样式。我使用的是node-sass中间件包,能够让sass呈现到CSS中并显示出来,但只有在重启服务器后才会显示一次。所有后续请求都没有提供正确的CSS。css文件在后续请求中存在,但它是空的。总之,以下是我在server.js文件中得到的内容:Javascript 带有节点sass中间件的Express app只提供一次正确的样式表,javascript,css,node.js,express,Javascript,Css,Node.js,Express,我正处于创建Node.js/Express应用程序的早期阶段(这是我比较熟悉的领域),我正在尝试集成SASS来处理样式。我使用的是node-sass中间件包,能够让sass呈现到CSS中并显示出来,但只有在重启服务器后才会显示一次。所有后续请求都没有提供正确的CSS。css文件在后续请求中存在,但它是空的。总之,以下是我在server.js文件中得到的内容: const express = require('express'); const app = exp
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在本地运行的。非常感谢您的帮助。在我的头撞了一下之后,我找到了答案。似乎对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')));
我成功了。我用头撞了一下,终于找到了答案。似乎对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')));
成功了。你真是个天才!你知道为什么会有不同吗?你是个天才!你知道为什么会有不同吗?