vue项目实战系列二十六:pdfjs跨域

(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.
  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值