Node.js公共静态文件夹以utf-8字符集服务js

Node.js public static folder to serve js with utf-8 charset

本文关键字:js utf-8 字符集 服务 静态 Node 文件夹      更新时间:2023-09-26

我使用node.js和express为单页应用程序提供静态JavaScript文件。在node.js服务器代码中,我使用express。Static允许公共访问文件夹

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

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

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

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

当我定义公共文件夹时,是否有任何方法来设置字符集?

使用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

在你的html页面中,必须有与你的资源文件编码相同的编码(或其他方式)

确保你在head部分设置了meta标签:

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