Javascript Can';不能使用express.Router提供静态文件?

Javascript Can';不能使用express.Router提供静态文件?,javascript,node.js,express,Javascript,Node.js,Express,在我的文件系统变得更复杂之前,我曾经通过app.use(express.static())提供静态文件。现在,我正在使用express.Router(),我想我可以将app.use(express.static())更改为Router.use(express.static()),但它不起作用。它抛出一个错误:拒绝从应用样式。。。因为它的MIME类型(“text/html”)不是受支持的样式表MIME类型,并且启用了严格的MIME检查。 是否有一种方法可以使用路由器提供静态文件。使用()而不是ap

在我的文件系统变得更复杂之前,我曾经通过
app.use(express.static())
提供静态文件。现在,我正在使用
express.Router()
,我想我可以将
app.use(express.static())
更改为
Router.use(express.static())
,但它不起作用。它抛出一个错误:
拒绝从应用样式。。。因为它的MIME类型(“text/html”)不是受支持的样式表MIME类型,并且启用了严格的MIME检查。

是否有一种方法可以使用
路由器提供静态文件。使用()
而不是
app.use()

文件系统:

/
..../chat
......../register
............/styles
................styles.min.css <-- This is the static file I want to serve
............index.html
............index.js
..../routes
........index.js
....index.js
/chat/register/index.js:

const express = require('express');
const router = express.Router();

router.use('/chat/register', require('../chat/register'));

router.get('/', (req, res) => res.redirect('/chat/register'));

module.exports = router;
const express = require('express');
const router = express.Router();

router.use('/styles', express.static('styles'));

router.get('/', (req, res) => {
  res.sendFile(`${__dirname}/index.html`);
});

module.exports = router;
const express = require('express');
const app = express();

app.use(require('./routes'));

app.listen(process.env.PORT || 80);

console.log(`App is listening on port ${process.env.PORT || 80}`);
/index.js:

const express = require('express');
const router = express.Router();

router.use('/chat/register', require('../chat/register'));

router.get('/', (req, res) => res.redirect('/chat/register'));

module.exports = router;
const express = require('express');
const router = express.Router();

router.use('/styles', express.static('styles'));

router.get('/', (req, res) => {
  res.sendFile(`${__dirname}/index.html`);
});

module.exports = router;
const express = require('express');
const app = express();

app.use(require('./routes'));

app.listen(process.env.PORT || 80);

console.log(`App is listening on port ${process.env.PORT || 80}`);
抱歉,如果问题措辞不当或代码中的某些内容看起来不符合要求;这是我第一次发布到Stack Overflow,我对Node、Express和web服务器也有点陌生。我在自己的时间学习编程。

您提供给express.static函数的路径是相对于启动节点进程的目录的

因此,要考虑到这一点,您应该修改chat/register/index.js

const express = require('express');
const path = require('path');
const router = express.Router();

router.use('/styles', express.static(path.join(__dirname, 'styles')));

router.get('/', (req, res) => {
  res.sendFile(`${__dirname}/index.html`);
});

module.exports = router;

您提供给express.static函数的路径是相对于启动节点进程的目录的

因此,要考虑到这一点,您应该修改chat/register/index.js

const express = require('express');
const path = require('path');
const router = express.Router();

router.use('/styles', express.static(path.join(__dirname, 'styles')));

router.get('/', (req, res) => {
  res.sendFile(`${__dirname}/index.html`);
});

module.exports = router;

您必须修改css的路径,因为这将由服务器加载,以便使用服务器的相对路径,如下所示

在你的
index.js中

const express = require('express');
const router = express.Router();
const path = require('path');

router.use('/styles', express.static(path.join(__dirname, 'styles')));

router.get('/', (req, res) => {
  res.sendFile(`${__dirname}/index.html`);
});

module.exports = router;


您必须修改css的路径,因为这将由服务器加载,以便使用服务器的相对路径,如下所示

在你的
index.js中

const express = require('express');
const router = express.Router();
const path = require('path');

router.use('/styles', express.static(path.join(__dirname, 'styles')));

router.get('/', (req, res) => {
  res.sendFile(`${__dirname}/index.html`);
});

module.exports = router;


如何链接HTML中的CSS?如何链接HTML中的CSS?