我正在使用 node.js 和 express 将静态 JavaScript 文件提供给单页应用程序。 在 node.js 服务器代码中,我使用 express.static 来允许公共(public)访问文件夹
app.use(express.static(__dirname + '/public/'));
在客户端,我使用$.getScript
获取public文件夹中的JavaScript文件,例如:
$.getScript("js/init.js");
当我尝试获取一些包含带重音符号的字母或某些 UTF-8 特殊字符的 JavaScript 文件时,我得到的是奇怪的字符,而不是我想要的字符。
有什么方法可以在定义公用文件夹时设置字符集吗?
最佳答案
来自What's the simplest way to serve static files using node.js?的回答给了我在静态之前插入您自己的中间件的提示。
下面的代码找到 *.js
文件并将字符集设置为 utf-8。
app.use(function(req, res, next) {
if (/.*\.js/.test(req.path)) {
res.charset = "utf-8";
}
next();
});
app.use(express.static(__dirname + '/public/'));
完成此操作后,查找以下响应 header 。
Content-Type: application/javascript; charset=utf-8
关于javascript - 使用 utf-8 字符集为 js 提供服务的 Node.js 公共(public)静态文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095347/