前言

本教程面向需要有二次开发的同学,主要是面向前端UI开发(本人使用MAC环境搭建),windows应该类似

搭建环境要求

  • nodejs 自己使用 10.15.3
  • docker

安装步骤

  1. 组织目录结构

    demo

    — nodejs

    — sdkjs

    — web-apps

    — proxy.js

  2. 下载DocumentServer Docker环境 安装教程 && 启动方式 http://helpcenter.onlyoffice.com/installation/docs-developer-install-docker.aspx

不清楚的同学可以执行下面的命令,使用最新的6.1.1版本

sudo docker run -i -t -d -p 80:80 --restart=always onlyoffice/documentserver:6.1.1

安装完后查看镜像是否启动,访问

http://127.0.0.1/weclcome/ 访问正常的同学可以打开这样的界面

然后按文档在终端里分别执行上面的两个脚本

执行完后点击here,会进入到 创建文档的界面

这时候docker的onlyoffice服务已经可以跑起来了。

  1. 下载SDKJS 并编译 SDKJS https://github.com/ONLYOFFICE/sdkjs
  • 装依赖, 在 sdkjs/build 下执行 npm install 安装依赖
  • 执行 grunt develop, 在 sdkjs 目录下会生成 develop 的目录
  1. 下载web-apps 并编译 web-apss https://github.com/ONLYOFFICE/web-apps
  • 进入 web-apps/build/sprites 安装依赖 npm install 后执行 grunt 目的是为了生成雪碧图
  • 进入 web-apps/build 安装依赖 npm install 后, 修改 gruntFile.js ,将下面三个地方注释
.....
// grunt.loadNpmTasks('grunt-contrib-imagemin');
....// imagemin: {//     options: {//         optimizationLevel: 3//     },//     dynamic: {//         files: []//             .concat(packageFile['main']['imagemin']['images-app'])//             .concat(packageFile['main']['imagemin']['images-common'])//     }// },
...
grunt.registerTask('deploy-app-main',               ['prebuild-icons-sprite', 'main-app-init', 'clean:prebuild', // 'imagemin', 'less',

这里注释是因为会报错,具体原因尚没了解清楚

  1. 下载nodejs-example 并修改配置 https://api.onlyoffice.com/editors/demopreview

进入 nodejs-example/config/default.json

修改 siteUrl: 为 127.0.0.1:9000

  1. 使用一个 proxy.js 代理文件,方便本地联调与文件代理,该内部的proxyUrl版本需要和 docker 下启动的静态本地址一致。
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const internalIp = require('internal-ip'); // 在需要的地方requireconst app = express();
(async () => {const ip = await internalIp.v4();// const proxyUrl = `http://${ip}/6.1.0-83/`// 根据docker 服务端版本更新const proxyUrl = `http://${ip}/6.1.1-53/`app.use('/doc', createProxyMiddleware({ target: proxyUrl, changeOrigin: true }));// 字体文件 + 字体图片代理app.use('/fonts', createProxyMiddleware({ target: `http://127.0.0.1`, changeOrigin: true }));app.use('/sdkjs/common/AllFonts.js', createProxyMiddleware({ target: `http://127.0.0.1/`, changeOrigin: true }));app.use('/sdkjs/common/Images/fonts_thumbnail@2x.png', createProxyMiddleware({ target: `http://127.0.0.1/`, changeOrigin: true }));// 部分文件提前代理app.use(express.static('demo'));
})()
app.listen(9000);
  1. 进入docker 修改 nginx 配置,因为会涉及到服务接口跨域问题

    在docker里找到 在 /etc/nginx/includes/ds-docservice.conf, 将一个 fonts 一个 cache/files 增加跨域头,并重启nginx -s reload


add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

大功告成,我们可以任意的去开发了并了解源代码了

资源地址

官网:https://www.onlyoffice.com/
开发文档:https://api.onlyoffice.com/
github地址: https://github.com/ONLYOFFICE/DocumentServer

常见问题

  • 上传word不知道为什么显示 download failed

解决: 浏览器访问不能以localhost,127.0.0.1来直接访问,需要输入你完整的地址(例如:192.168.0.xx:8090/…),不然无法打开在线编辑功能

  • 代理工具需要使用localhost 不然会有https安全问题
  • edit version 版本不对因为构建的 app.js 版本,将版本号同步即可app.js 和 api.js version不一致 再deploy下将版本统一即可

onlyoffice 本地二次开发基础教程相关推荐

  1. ArcGIS二次开发基础教程(11):网络分析之最短路径分析

    ArcGIS二次开发基础教程(11):网络分析之最短路径分析 最短路径分析 这里直接调用了在mdb中建立好的网络数据集 //全局变量 private INetworkDataset my_networ ...

  2. ArcGIS二次开发基础教程(10):三维分析

    ArcGIS二次开发基础教程(10):三维分析 坡度分析 请务必学会使用帮助文档!!! //DEM数据的坡度分析 将分析结果添加到地图上 //首先获取DEM数据,方法有很多例如从个人地理数据库获取,也 ...

  3. ArcGIS二次开发基础教程(06):有关图层的基本操作

    ArcGIS二次开发基础教程(06):有关图层的基本操作 0. PageLayout和MapControl 的同步 void CopyToPage(){//对象拷贝,把mapcontrol的地图拷贝重 ...

  4. ArcGIS二次开发基础教程(13):网络分析之最近设施分析

    ArcGIS二次开发基础教程(13):网络分析之最近设施分析 最近设施分析 /// <summary>/// Geodatabase function: open work space// ...

  5. ArcGIS二次开发基础教程(09):叠加分析

    ArcGIS二次开发基础教程(09):叠加分析 缓冲区分析的概念及原理请查看帮助文档 http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/analy ...

  6. ArcGIS二次开发基础教程(00):基础界面设计

    ArcGIS二次开发基础教程(00) : 基础界面设计 (开发环境:VS2010+ArcEngine10.2+C# :鉴于学习ArcGIS二次开发的同学都有一定的WinForm开发和ArcGIS软件使 ...

  7. ArcGIS二次开发基础教程(03):保存文档和导出地图

    ArcGIS二次开发基础教程(03):保存文档和导出地图 保存文档 保存: //这里的path为全局变量 在打开文件获添加数据时赋值原路径 //判断打开文件是否为mxd文件 是则保存 不是则另存为 i ...

  8. ArcGIS二次开发基础教程(04):有关字段的操作和简单属性及空间查询

    ArcGIS二次开发基础教程(04):有关字段的操作和简单属性及空间查询 属性 字段的添加.删除和查找 IFeatureLayer GetLayerByName(string name) {ILaye ...

  9. ArcGIS二次开发基础教程(08):在MapControl上画图(添加元素)

    ArcGIS二次开发基础教程(08):在MapControl上画图(添加元素) 添加临时元素 0. 点元素 //临时画图的元素将不会保存在地图中 //全局变量 IPoint pt; IElement ...

最新文章

  1. spring security 注解不生效的一些隐含问题
  2. windows RabbitMq 安装
  3. 计算机网络——互动百科
  4. 主成分分析(Principal components analysis)
  5. 并发安全Sync包的使用
  6. No module named 'pandads'
  7. 效率提升看得见 神策 A/B 测试可视化试验能力正式上线
  8. js验证input输入框(字母,数字,符号,中文)
  9. 安卓逆向_9 --- log 插桩、Toast 弹窗、smali代码编写和植入 ( 好搜小说 )
  10. Linux 中断学习之小试牛刀篇---Linux中断内核编程
  11. 人脸表情分类与识别:opencv人脸检测+Keras情绪分类
  12. 单容水箱液位pid控制实验报告_过程控制实验-单容水箱液位控制系统
  13. Java服务端接入苹果内购。实现票据二次校验、自动续期订阅
  14. 临床数据库挖掘系列2-使用SEER.stat软件提取数据
  15. 关于程序员秃顶和预防的小知识
  16. 程序员必须学会的《软技能》
  17. java ftp输出流_java输出流实现文件下载
  18. 数据收集-数据收集软件-数据收集工具免费
  19. 14、ADS使用记录之功率放大器设计
  20. 易语言取c盘文件夹中的文件被占用,易语言检测文件被哪个进程占用的代码

热门文章

  1. JS计算俩个日期之间相差的天数,过滤节假日和周末
  2. 双录系统服务器地址怎么登陆,双录系统服务器地址怎么登陆
  3. 【BUUCTF】bjdctf_2020_babystack Write Up
  4. surfer13汉化过程
  5. 笔记-公共政策[0145]
  6. 华师大计算机研究生学硕学费,2018年华东师范大学非全日制研究生学费收费详情如何?...
  7. 管理服务器和受管服务器
  8. 在 Linux 和 Windows 之间玩转 Steam 游戏
  9. 网络安全法丨信息泄露如何严重,网络安全法实施意义何在?
  10. 全栈开发 乾坤大挪移