Node.js的公共静态文件夹服务JS使用UTF-8字符集(Node.js public stati

2019-07-17 17:11发布

I'm如何使用Node.js和表达对静态JavaScript文件用于单页的应用程序。 在Node.js的服务器代码,我用express.static允许公众访问的文件夹

app.use(express.static(__dirname + '/public/'));

在客户端,我用$.getScript来获取存储在公用文件夹中的JavaScript文件,例如:

$.getScript("js/init.js");

当我试图获取有口音或某些UTF-8的特殊字符的字母一些JavaScript文件,我得到了奇怪的字符,而不是我想要的。

有什么办法来设置字符集时,我界定公共文件夹?

Answer 1:

从回答什么是服务如何使用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/'));

这样做了以后,看看以下响应报头。

Content-Type: application/javascript; charset=utf-8


Answer 2:

在HTML页面中必须有同样的编码作为你的资源文件的编码(或者反过来)

请确保您设置的头部部分中的meta标签:

<meta charset='utf-8'></meta>


文章来源: Node.js public static folder to serve js with utf-8 charset