修复jeecg接口pdfPreviewIframe无法预览pdf问题出现白屏的原因是后端 pdfPreviewIframe 没有将传入的 url 参数传递给前端模板且前端模板 pdfPreviewIframe.ftl 中硬编码了一个已失效的阿里云 OSS 地址导致无法加载指定的文件。1.修改pdfPreviewIframe.ftl#assign basespringMacroRequestContext.getContextUrl()htmlheadmeta http-equivX-UA-CompatiblecontentIEedgemeta http-equivContent-Typecontenttext/html; charsetutf-8meta http-equivCache-Controlcontentno-store/meta http-equivPragmacontentno-cache/meta http-equivExpirescontent0/titlePDF预览/title/headbody stylemargin:0; padding:0; height:100%; overflow:hidden;script typetext/javascript/** * PDF 预览中转页面 * 支持自动通过 url 参数加载 PDF.js 查看器 */(function(){varrawUrl${url!};if(rawUrl){varfinalUrlrawUrl;// 如果 url 不是以 http 开头自动补全为系统定义的静态资源接口路径if(finalUrl.indexOf(http)!0){// 如果是以 / 开头说明是绝对路径但缺少域名if(finalUrl.indexOf(/)0){finalUrlwindow.location.protocol//window.location.hostfinalUrl;}else{// 否则视为业务相对路径补全为 /sys/common/static/ 接口地址varserverBasewindow.location.protocol//window.location.host${base};finalUrlserverBase/sys/common/static/finalUrl;}}// 拼接 PDF.js 标准查看器地址varviewerPath${base}/generic/web/viewer.html?fileencodeURIComponent(finalUrl);// 重定向到查看器页面window.location.replace(viewerPath);}else{document.body.innerHTMLdiv styletext-align:center; margin-top:100px; font-family: sans-serif;h3未指定预览文件地址/h3p stylecolor:#666;请通过 ?urlxxx 参数传入文件路径/p/div;}})();/script/body/html2.pdfPreviewIframe接口/** * 功能pdf预览Iframe * param modelAndView * return */RequestMapping(/pdf/pdfPreviewIframe)publicModelAndViewpdfPreviewIframe(ModelAndViewmodelAndView,RequestParam(nameurl,requiredfalse)Stringurl){modelAndView.addObject(url,url);modelAndView.setViewName(pdfPreviewIframe);returnmodelAndView;}