一站式
提供docx、xlsx、pdf 3种文档的在线预览方案
From 57e7e3457aaf0d7df5b99e5d800375cd0dba60d2 Mon Sep 17 00:00:00 2001 From: liyulin <501351981@qq.com> Date: Thu, 23 Mar 2023 13:45:56 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E8=B7=A8=E5=9F=9F=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/guide/faq.md | 51 +++++++++++++++++++ examples/docs/404.html | 2 +- examples/docs/assets/guide_faq.md.3d8a2c63.js | 25 +++++++++ .../docs/assets/guide_faq.md.3d8a2c63.lean.js | 1 + examples/docs/config/event.html | 2 +- examples/docs/config/index.html | 2 +- examples/docs/guide/contact.html | 2 +- examples/docs/guide/faq.html | 30 +++++++++-- examples/docs/guide/index.html | 2 +- examples/docs/guide/preview-docx.html | 2 +- examples/docs/guide/preview-pdf.html | 2 +- examples/docs/guide/preview-xlsx.html | 2 +- examples/docs/hashmap.json | 2 +- examples/docs/index.html | 2 +- 14 files changed, 114 insertions(+), 13 deletions(-) create mode 100644 examples/docs/assets/guide_faq.md.3d8a2c63.js create mode 100644 examples/docs/assets/guide_faq.md.3d8a2c63.lean.js diff --git a/docs/guide/faq.md b/docs/guide/faq.md index 9d1b6a6..306ef2c 100644 --- a/docs/guide/faq.md +++ b/docs/guide/faq.md @@ -7,6 +7,57 @@ 跨域设置是否成功,可以看返回的响应头里面,是否有access-control-allow-origin字段 +解决跨域有以下几种方式: + +- 修改nginx或者apache配置 + +只需要在server或者静态文件对应的location中添加 add_header Access-Control-Allow-Origin *; + +```shell + server { + add_header Access-Control-Allow-Origin *; + } +``` +这种方式最简单,但是接口也跟着允许跨域了,如果你的文件只是在某个目录下,可以只针对具体配置设置允许跨域。 + +```shell + server { + location /upload/ { + add_header Access-Control-Allow-Origin *; + root /opt/homebrew/etc/nginx; + } + } +``` +这样配置只针对 /upload开头的请求生效。 + +- 在后端静态服务中设置允许跨域 + +在php加载的文件头部加入以下代码 +```php + header('Access-Control-Allow-Origin:*'); // *代表允许任何网址请求 +``` + +node服务,以koa为例,可以使用koa-cors中间件 +```javascript +const serve = require('koa-static'); +const Koa = require('koa'); +const app = new Koa(); + +var cors = require('koa-cors'); +app.use(cors({ + origin: '*' +})); + +app.use(serve('.', { +})); + + +app.listen(3000); +``` + +各种语言都类似,可以自行百度查询 + + ![描述][cros] ## 文件预览不出来 diff --git a/examples/docs/404.html b/examples/docs/404.html index 30dad46..20aa26e 100644 --- a/examples/docs/404.html +++ b/examples/docs/404.html @@ -12,7 +12,7 @@
404
But if you don't change your direction, and if you keep looking, you may end up where you are heading.
跨域需要后端配合解决,设置允许资源文件跨域访问。
跨域设置是否成功,可以看返回的响应头里面,是否有access-control-allow-origin字段
解决跨域有以下几种方式:
只需要在server或者静态文件对应的location中添加 add_header Access-Control-Allow-Origin *;
server {
+ add_header Access-Control-Allow-Origin *;
+ }
+
这种方式最简单,但是接口也跟着允许跨域了,如果你的文件只是在某个目录下,可以只针对具体配置设置允许跨域。
server {
+ location /upload/ {
+ add_header Access-Control-Allow-Origin *;
+ root /opt/homebrew/etc/nginx;
+ }
+ }
+
这样配置只针对 /upload开头的请求生效。
在php加载的文件头部加入以下代码
header('Access-Control-Allow-Origin:*'); // *代表允许任何网址请求
+
node服务,以koa为例,可以使用koa-cors中间件
const serve = require('koa-static');
+const Koa = require('koa');
+const app = new Koa();
+
+var cors = require('koa-cors');
+app.use(cors({
+ origin: '*'
+}));
+
+app.use(serve('.', {
+}));
+
+
+app.listen(3000);
+
各种语言都类似,可以自行百度查询
pdf渲染时可能会请求一些bcmap文件,这些文件默认从 https://unpkg.com/pdfjs-dist@3.1.81/ 加载,但是可能存在网络不通问题,如果遇到这种问题,可以将这些文件放到自己静态目录,然后修改该属性,告诉组件去这里请求bcmap文件。
涉及的文件存放在当前github项目中examples/public/cmaps目录下,可将cmaps目录复制到你的静态服务目录下,然后修改staticFileUrl为cmaps文件夹对应的父地址,必须已http或https开头,如 http://yourdomain/static/
- - - - -