突破Nginx中文PDF预览瓶颈:Nginx配置文件与Script脚本解法

问题背景:常规方案的局限性

在搭建PDF文档中心时,我们常依赖Nginx的目录索引(autoindex on)和字符集配置(charset utf-8)实现文件预览。但当遇到中文命名的PDF文件时,常规配置往往陷入​三大困局​:

  1. 乱码陷阱​:浏览器显示文件名乱码,即使配置charset也无法根治编码兼容问题;
  2. 路径解析失效​:URL自动编码(如%E6%96%87)导致Nginx无法正确映射物理路径;
  3. 跨平台差异​:Windows/Linux文件系统编码差异加剧兼容复杂度。

破局思路:Script脚本与Nginx的协同作战

最终配置文件如下:

location /pdf目录/ {
alias "站点目录";
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
try_files $uri $uri/ =404;
add_after_body /autoindex_js.html;
}
location = /autoindex_js.html {
internal;
return 200 '<script>
document.addEventListener("DOMContentLoaded", function() {
var links = document.querySelectorAll("a");
links.forEach(function(link) {
var href = link.textContent;
link.setAttribute("href", href);
link.setAttribute("target", "_blank");
link.textContent = decodeURIComponent(link.textContent);
});
});
</script>';
}

给TA赏糖
共{{data.count}}人
人已赏糖
技术分享

WordPress当搜索结果为零时,跳转到首页

2025-1-13 15:04:57

技术分享

B2 Pro 移动端我的关注显示空白错误修复

2025-8-3 18:31:47

2 条回复 A文章作者 M管理员
技术宅评论
  1. 未名游客给作者打赏了¥1
  2. 小翼淑E

    可以

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索