Node.js公共静态文件夹,用于提供带有utf-8字符集的js

时间:2012-12-30 22:31:15

标签: javascript jquery node.js utf-8 express

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

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

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

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

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

在定义公用文件夹时有没有办法设置字符集?

2 个答案:

答案 0 :(得分:3)

来自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/'));

执行此操作后,请查找以下响应标题。

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

答案 1 :(得分:0)

在你的html页面中,必须有与资源文件编码相同的编码(或者相反)

确保在head部分设置元标记:

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