javascript - 使用 utf-8 字符集为 js 提供服务的 Node.js 公共(public)静态文件夹

标签 javascript jquery node.js utf-8 express

我正在使用 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/

相关文章:

javascript - 如何使用 node.js 获取具有特定文件扩展名的文件列表?

javascript - 查找将 $lt 和 $gt 与 javascript 日期一起使用

javascript - 如何导出使用对象解构定义的常量

node.js - MongoDB 在数据库中查找一个对象并更新其字段

javascript - 打开其中有多个选项卡的窗口

javascript - 如何将 preventDefault 调用传递给其他事件?

javascript - Angularjs 将 $scope 分配给预先存在的 MVC 模型数据

javascript - Bootstrap 垂直标签自动改变

jquery ui datepicker 在 IE 6.0 中无法正确渲染(显示)

jquery - 使用 jQuery 拖动 div 会导致页面突出显示