WordPress前端无法加载已生成PDF文档的问题求助
WordPress前端无法加载已生成PDF文档的问题求助
大伙好,我最近碰到个棘手的问题想请教下各位:
我自己开发了个自定义WordPress插件,之前功能都跑挺顺的,后来新增了个功能——把生成的PDF文件存在服务器上插件专属的独立文件夹里,这个文件夹我已经设置了读和执行权限。
奇怪的是,在后台读取和显示这个PDF完全没问题,但一到前端就报错:
Error Failed to load PDF document.
文件肯定是已经生成并存好的,现在就只是前端读取显示的环节出问题,有没有大佬遇到过类似情况,给点思路呀?
我用到的相关代码片段(未完成部分):
$PluginDir = plugin_dir_
我自己初步想到的几个排查方向,也欢迎大家补充:
- 先核对前端调用PDF的路径是否正确:后台可能用的是服务器本地绝对路径,但前端得用可通过HTTP访问的URL路径才行,比如应该用
plugin_dir_url()来生成前端能访问的链接,而不是plugin_dir_path()(这个是服务器本地的文件路径,浏览器没法直接访问)。 - 再确认下文件和文件夹的权限:虽然文件夹开了读和执行,但PDF文件本身的权限是不是web服务器用户(比如www-data)能读取?有时候服务器本地用户能读,但web进程没权限的话,前端请求就拿不到文件。
- 检查PDF文件本身是否完整:可以把前端要访问的PDF URL复制到新标签页直接打开,看看是提示404、下载后能不能打开,以此判断是路径问题还是文件损坏。
- 查看HTTP响应头:服务器返回的Content-Type是不是
application/pdf?如果返回的是text/html或者其他类型,浏览器就没法正确识别成PDF文件。 - 排查缓存或CDN:如果站点用了缓存插件或者CDN,会不会是缓存了旧的无效路径?试试清一下全站缓存再测试。
内容来源于stack exchange
相关产品推荐
相关产品推荐

