同一服务器下跨站点引用Framework_Acme目录中的PDF.js库配置方法
如何跨站点目录引用PDF.js库?
你现在的情况是把PDF.js从FrontEnd的Pdfjs目录移到了同级的Framework_Acme目录,要让FrontEnd里的.asp文件能正确调用这个集中管理的库,核心就是修改资源的引用路径,推荐用服务器根路径的方式,这样不管后续新增多少站点都不会出问题,具体改法如下:
核心修改思路
因为两个目录都在服务器根目录下,用/开头的绝对根路径可以直接定位到Framework_Acme里的资源,比相对路径更可靠(相对路径容易受页面目录结构变动影响)。
修改代码示例
原代码
var pdfjsLib = window['pdfjs-dist/build/pdf']; //Extension pdf.js (pdf.worker.js) pdfjsLib.GlobalWorkerOptions.workerSrc = './pdfjs/pdf.worker.js'; //Async PDF var LoadTask = pdfjsLib.getDocument(PDF_URL);
修改后的代码
假设你把PDF.js完整迁移到了Framework_Acme/Pdfjs目录下(和之前FrontEnd里的结构一致),那么代码要改成这样:
// 用服务器根路径指向Framework_Acme下的PDF.js核心库 var pdfjsLib = window['/Framework_Acme/Pdfjs/pdfjs-dist/build/pdf']; // 同样修改worker文件的路径,确保指向集中管理的版本 pdfjsLib.GlobalWorkerOptions.workerSrc = '/Framework_Acme/Pdfjs/pdf.worker.js'; //Async PDF var LoadTask = pdfjsLib.getDocument(PDF_URL);
额外注意事项
- 一定要核对路径的准确性:如果你的PDF.js在Framework_Acme里的子目录不是Pdfjs,要把路径里的
Pdfjs改成实际的目录名。 - 检查服务器权限:确保服务器允许从FrontEnd站点访问Framework_Acme目录下的静态资源(一般默认配置是允许的,除非有特殊的目录权限限制)。
如果暂时不想用绝对根路径,也可以用相对路径(比如../Framework_Acme/Pdfjs/...),但这种方式只适合当前.asp文件和Framework_Acme目录的层级关系不变的情况,后续如果页面目录结构调整,可能会失效,所以还是推荐绝对根路径的方式。
内容的提问来源于stack exchange,提问作者Joao




