[Mistake] Nginx 搭建单页面时,网页中文为乱码的问题

前因

前端项目是一个 用 React 做的单页面应用。

在访问该页面时呢,会先访问 Nginx,Nginx 再代理转发到一个 Express 进程中。

这折腾的…

于是直接修改 Nginx 配置文件为

server {
  listen 80;
  server_name example.com;
  root /var/www/example;

  location / {
    rewrite .* /index.html break;
  }
}

直接从 Nginx 层代理转发网页回去

问题

上线后,发现,不论在桌面版,移动版 Safari 中,网页汉字都显示为乱码。

解决

既然是改了 Nginx 的配置后出现的问题,理所当然的就怀疑到了 Nginx 头上,

在比对 Express 和 Nginx 返回 html 页面时的 response 后,发现 Ngnix 缺少了 charset=utf-8。

于是修改 Nginx 配置,如下

server {
  listen 80;
  server_name example.com;
  root /var/www/example;

  location / {
    charset utf-8;
    rewrite .* /index.html break;
  }
}

顺利解决。

    原文作者:huhuanming
    原文地址: https://segmentfault.com/a/1190000008398750
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞