Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点赢得';不允许使用CSS,因为MIME类型text/html不是受支持的样式表_Node.js_Express - Fatal编程技术网

Node.js 节点赢得';不允许使用CSS,因为MIME类型text/html不是受支持的样式表

Node.js 节点赢得';不允许使用CSS,因为MIME类型text/html不是受支持的样式表,node.js,express,Node.js,Express,我正在尝试将样式表加载到从Node Express提供的HTML文件中,但不断出现以下错误: 拒绝应用“”中的样式,因为其MIME类型('text/html')不是受支持的样式表MIME类型,并且启用了严格的MIME检查 我在这里已经研究过类似的问题,但是没有一个解决了这个问题。我在链接中添加了type=text/css,并尝试了css文件的各种不同路径 这些链接都不会加载CSS文件: <link rel="stylesheet" type="text/css" href="style.c

我正在尝试将样式表加载到从Node Express提供的HTML文件中,但不断出现以下错误:

拒绝应用“”中的样式,因为其MIME类型('text/html')不是受支持的样式表MIME类型,并且启用了严格的MIME检查

我在这里已经研究过类似的问题,但是没有一个解决了这个问题。我在链接中添加了
type=text/css
,并尝试了css文件的各种不同路径

这些链接都不会加载CSS文件:

<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="/style.css">
<link rel="stylesheet" type="text/css" href="./style.css">
<link rel="stylesheet" type="text/css" href="/create/style.css">
<link rel="stylesheet" type="text/css" href="./create/style.css">
<link rel="stylesheet" type="text/css" href="http://localhost:3000/create/style.css">
server.js

const app = require('express')()
const http = require('http').createServer(app)

app.get('/create', function (req, res) {
    res.sendFile(__dirname + '/create/index.html');
})

http.listen(3000, function () {
    console.log('listening on *:3000')
});
这些链接都不会加载CSS文件

是的,问题是与文件关联的MIME类型,更改链接不会更改MIME类型。除非您为同一个文件提供不同的路由和不同的MIME类型(是否?)

这里感兴趣的MIME类型是text/css

在发送HTTP请求之前,需要更改其标头

调用sendFile()时可以执行此操作:

这些链接都不会加载CSS文件

是的,问题是与文件关联的MIME类型,更改链接不会更改MIME类型。除非您为同一个文件提供不同的路由和不同的MIME类型(是否?)

这里感兴趣的MIME类型是text/css

在发送HTTP请求之前,需要更改其标头


调用sendFile()时可以执行此操作:

但是
sendFile()
正在发送
index.html
文件。可能不允许在使用
sendFile()
发送的HTML文件中加载CSS文件?是的,允许加载,但有一个细微之处:一旦HTML文件被提供,浏览器将解析它,然后发送另一个请求(对于HTTP1.1),以获取CSS文件、图像,等等。您可以在web Developer控制台的“网络”选项卡下查看请求和服务器响应。这意味着您的服务器必须实现一个路由来服务CSS文件,就像index.html一样,但使用不同的MIME类型。请注意,Express中有一个工具可以轻松地服务静态文件:谢谢,使用静态文件选项解决了MIME类型错误!我现在唯一的问题是所有静态文件都来自同一个文件夹。我使用
app.use(express.static('create'))
app.use(express.static('game'))
添加了两个静态文件夹,但是第二个被忽略了。。。所有样式都来自第一个文件夹。您放在“static”目录下的所有目录和文件都将用作static。您不必创建第二个静态目录,它类似于Apache的“public_html”目录。假设您在Express中声明的静态目录称为“static”,那么您可以访问子目录中的CSS文件而不声明它:例如,在路径“public/CSS/style.CSS”下,但是
sendFile()
正在发送
index.html
文件。可能不允许在使用
sendFile()
发送的HTML文件中加载CSS文件?是的,允许加载,但有一个细微之处:一旦HTML文件被提供,浏览器将解析它,然后发送另一个请求(对于HTTP1.1),以获取CSS文件、图像,等等。您可以在web Developer控制台的“网络”选项卡下查看请求和服务器响应。这意味着您的服务器必须实现一个路由来服务CSS文件,就像index.html一样,但使用不同的MIME类型。请注意,Express中有一个工具可以轻松地服务静态文件:谢谢,使用静态文件选项解决了MIME类型错误!我现在唯一的问题是所有静态文件都来自同一个文件夹。我使用
app.use(express.static('create'))
app.use(express.static('game'))
添加了两个静态文件夹,但是第二个被忽略了。。。所有样式都来自第一个文件夹。您放在“static”目录下的所有目录和文件都将用作static。您不必创建第二个静态目录,它类似于Apache的“public_html”目录。假设您在Express中声明的静态目录称为“static”,那么您可以访问子目录中的CSS文件而不声明它:例如,在路径“public/CSS/style.CSS”下,这是一个用于服务静态文件的线程,这家伙有相同的MIME问题:这是一个用于服务静态文件的线程,这家伙有相同的MIME问题:
const app = require('express')()
const http = require('http').createServer(app)

app.get('/create', function (req, res) {
    res.sendFile(__dirname + '/create/index.html');
})

http.listen(3000, function () {
    console.log('listening on *:3000')
});