-
发生时间:2022-10-26
-
问题描述:
- 产线服务器的 nginx 配置文件中将 dfh 生产工具说明页面配置在根路径下,这显然不合理。因此,我修改了配置,并重启 nginx。
- 然后在 Chrome 浏览器中访问此页面,发现浏览器会直接下载页面对应的 HTML 文件,而非正常显示页面内容。
- 检查 nginx 文件,发现自己误添加了
add_header Content-Disposition 'attachment;',将其删除并重启 nginx,但 Chrome 浏览器依然会直接下载文件。
-
问题类别:软件部署
-
原因分析:
- 多次重复尝试无果后,突然想到换 Firefox 浏览器来访问,然后发现 Firefox 浏览器可以正常显示页面内容。
- 后来让同事在他的电脑上帮忙测试,结果是:去掉上述配置并重启 nginx 后,他的 Chrome 浏览器可以正常显示页面内容。
- 可见这个问题仅在我的 Chrome 浏览器出现。接着很快就联想到:可能是我的 Chrome 浏览器缓存了旧数据导致的。
- 于是尝试清除 Chrome 浏览器缓存后再访问,果然可以正常显示页面了。
-
解决方案:
- 清除 Chrome 浏览器缓存。步骤如下:
- 点击浏览器右上角的三点
- 点击
More Tools(更多工具) - 点击
Clear Browsing Data...(清除浏览数据...)
- 清除 Chrome 浏览器缓存。步骤如下:
-
实施结果:清除 Chrome 浏览器缓存后,可以正常显示网页。
-
经验总结:
- 修改配置时要先确认配置项的含义。我没搞清楚
add_header Content-Disposition 'attachment;'这个配置项的含义就直接使用,导致问题的发生。 - 浏览器表现异常时,既可能是服务端的问题,也可能是浏览器的问题。这个问题就是浏览器的行为(缓存)导致的,但我前期一直以为是 nginx 配置问题。
- 修改配置时要先确认配置项的含义。我没搞清楚