vue项目实战系列二十六:pdfjs跨域
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
(1). 场景:
①. 存储是在七牛云,动态存储域名与业务域名不一致
②. 本地的view.html包与OSS的域名不一致
(2). pdf.js默认不支持跨域,官方给出了两个方案:
①. 使用cors。
②. 将业务服务器作为代理
(3). 实现:
①. 最简单的方案后端拿到pdf后,存在本地服务器:
a. 增加后端压力
b. 占用业务服务器存储
②. OSS存储服务器增加跨域的头Access-Control-Allow-Origin,允许业务服务器直接读取,但在ie9上会出现安全提示
③. nginx反向代理:
a. 存储域名为动态的,定义好url:
"/Index/viewer?file=http://hd4.xwg.cc/2017-04-10_1491805971_FlNoJrXvyicG7SRDg4Y6E3tA8-7G.pdf?bucket=qxt-2017"
b. 对应的存储域名由bucket来决定为qxt-2017.cdn.xwg.cc
c. nginx配置
location ~ .*.pdf
{
resolver 100.100.2.138;
proxy_pass http://$arg_bucket.cdn.xwg.cc;
}
location ~ .*.pdf
{
resolver 8.8.8.8;
proxy_pass https://test-core.oss-cn-shanghai.aliyuncs.com;
}
④. 未加上resolver指令,nginx一直报错,而静态的存储域名没事:
Parameter value can contain variables. In this case, if an address is specified as a domain name, the name is searched among the described server groups, and, if not found, is determined using a resolver.
`
GitHub 加速计划 / vu / vue
207.52 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:1 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 3 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 3 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)