我用编码为“utf-8”的 html 文件制作了一个静态生成的网站
由 express 送达 它们驻留在静态目录中
我在保存网页之前省略了文件扩展名后发现
在浏览器中打开时,网页会被下载,而不是通常呈现为 html 文档
到目前为止找不到任何有关该主题的相关信息。
最佳答案
静态模块接受一个setHeaders
函数,该函数可以动态地将 header 添加到它提供的任何静态文件中。
您可以测试文件是否没有文件扩展名并动态添加 header :
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => res.send('Hello World!'))
// This is a bit quick and dirty, but should be suitable for most cases
const noFileExtension = /[^.]{5}$/;
const staticOptions = {
setHeaders: (res, path, stat) => {
if (path.match(noFileExtension)) {
res.set('Content-Type', "text/html");
}
}
}
app.use(express.static('public', staticOptions));
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
关于javascript - 我如何强制 Express 提供没有文件扩展名且内容类型为 'text/html' 的静态 html 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59813910/